Node.js socket.io在一个页面上进行多个聊天
我想在一个页面上实现多个聊天窗口(比如facebook)。 目前使用“房间”,简化代码: [客户端]Node.js socket.io在一个页面上进行多个聊天,node.js,sockets,socket.io,chat,chatroom,Node.js,Sockets,Socket.io,Chat,Chatroom,我想在一个页面上实现多个聊天窗口(比如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() { // ap
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');
[服务器]
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');
所以,客户端上的每个单独的聊天室都是一个单独的类,它处理聊天逻辑,它必须只接收来自服务器的事件,用于连接的聊天室。但如果是一个页面,则使用一个套接字连接,因此如果一个套接字将连接到多个房间,那么订阅一个房间,也将从另一个房间接收事件。我该如何分开这个
我在想这些方法:
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');
[服务器]
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');
这是个好主意吗
如果是其他方法,请与我共享。一个房间一个插座,打开多个插座没有问题。我认为您只创建一个插座连接到服务器。但一个插座可以连接多个房间。 当服务器发送到客户端时,您必须确定房间发送。 示例:socket.broadcast.to(room.emit(..…{data:idRoom});。 当客户端从服务器接收套接字时。它必须确定弹出窗口将接收消息。您可以使用来自服务器的idRoom来确定弹出窗口接收。
对不起,我的英语不好你的问题解决了吗?我正在尝试执行相同的签出
名称空间