我是websocket IO的新手。
我在节点js和laravel中使用Websocket IO。我使用websocket实现了即时聊天。使用此URL的所有人都可以使用此URL并立即聊天。
但是我只需要两个用户聊天首选项。
请提出您的想法。
答案 0 :(得分:0)
我了解您要为两个用户实施实时聊天。这可以通过任何websocket框架轻松完成。 Ably是实时聊天的不错选择。
答案 1 :(得分:0)
最好以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>