我想在一个页面上实现多个聊天窗口(比如facebook )。目前正在使用“房间”,简化代码:
客户端
socket.emit('join', 'room1');
socket.emit('join', 'room2');服务器
socket.on('join', function(room)
{
socket.join(room);
});因此,客户端上的每个单独的房间,都是一个单独的类来处理聊天逻辑,它必须只为连接的房间接收来自服务器的事件。但是如果它是一个页面,那么使用一个套接字连接,所以如果一个套接字将连接到多个房间,那么订阅一个房间,也会收到来自另一个房间的事件。我该怎么把这个分开?
我在想这些方法:
客户端
var room = 'room1';
socket.on(room + '.new_message', function()
{
// append message to chat
});服务器
io.sockets.in('room1').emit('room1.new_message', 'some message');这是个好主意吗
如果这是其他方法,请与我分享。
发布于 2015-08-18 14:40:41
一个套接字一个房间,没有问题有多个插座。
发布于 2016-03-25 03:54:54
我认为您只创建一个套接字连接到服务器。但一个插座可以连接多个房间。当服务器发送到客户端时,您必须确定房间发送。示例:socket.broadcast.to(房间).emit(.{data: idRoom});。当客户端从服务器接收套接字时。它必须确定popUp将接收消息。您可以使用来自服务器的idRoom来确定PopUp接收。
对不起我的英语
https://stackoverflow.com/questions/25411481
复制相似问题