php - 如何使用 websocket io 只交互两个屏幕
问题描述
我是 websocket IO 的新手。
我在节点 js 和 laravel 中使用 Websocket IO。我使用 websocket 实现了即时聊天。使用此 URL 的人都可以使用此 URL 并立即聊天。
但我只需要两个用户聊天偏好。
请提出您的想法。
解决方案
最好在 url 参数中发送用户 ID 或房间 ID。房间 ID 意味着,例如,在您的情况下,有两个用户。
在房间表格式
id . room_id . user_id
1 200 user_1
2 200 user_2
在你的 laravel 路由文件 web.php
Route::get('chat/{room_id}','HomeController@chat');
Route::get('chat/200','HomeController@chat');
在您的视图文件中
<script src="{{ url("assets/scripts/sjquery-3.2.1.min.js") }}"></script>
<script src="{{ url("assets/scripts/socket.io.js") }}"></script>
<script type="text/javascript">
//current url room_id
var room_id="{{ $room_id }}";
var socket=io.connect(LISTEN_URL);
jQuery(document).ready(function($){
$("#submit-chat").click(function(){
if($("#text-chat").val()!="")
{
//you will pass current room id in socket emit
var data={room_id:room_id,name:$("#text-name").val(),message:$("#text-chat").val()}
socket.emit('sendChatToServer', data);
$("#text-chat").val("");
}
else
{
alert('Please enter text to chat');
}
return false;
})
socket.on('sendChatToClient', function(message) {
//every time and every page and every users this socket listens, but message only enters if your current room_id and receiving data room id same
if(room_id==message.room_id)
{
$(".chat-content ul").append('<li><strong>'+message.name+'</strong> - '+message.message+'</li>');
}
});
})
</script>
推荐阅读
- java - 将 Firebase 数据对象转换为数组
- c# - C# 中的通用部分方法?
- sql - SQL查找与另一个表中的所有项目匹配的所有项目
- python - 有没有更好的方法在 Pandas 中加入两个数据框?
- node.js - 隔离的 EJS 部分文件加载到浏览器,但未在屏幕上呈现
- android - Rxkotlin 自动完成搜索
- quantitative-finance - 如何在窗口 10 上安装 ORE-SWIG?
- android - 如何在浓缩咖啡自动化中滑动到特定值?
- java - 使用线程生成唯一随机数(范围)的简单方法?爪哇
- logging - 如何在 CW 日志中获取要使用 RequestId 记录的异常