我一直在使用nodeJs动态创建socket.io上的房间,并在我的问题上搜索了两天。当我创建一个房间到服务器上,我提出这样的:socket.io创建动态空间
socket.on('follow_me', function (user_id) { //I use the user_id of the user to create room
socket.join(user_id);
console.log(server.sockets.manager.rooms);
});
如果接下来,我想通过使用
socket.join(user_id);
当我使用将消息发送到连接中的所有的人:
socket.on('message', function (data) {
socket.broadcast.to(data.room).emit('recieve',data.message); //emit to 'room' except this socket
});
该房间中的其他用户没有收到该消息;但如果我使用:
socket.join(user_id);`,when i use :
socket.on('message', function (data) {
socket.broadcast.emit('recieve',data.message);
});
所有用户都收到该消息。为什么房间不适合我?我认为代码很好!
坦克的
参见[Socket.io broadcast.to和sockets.in间客房区别] [1] [1] :http://stackoverflow.com/questions/6873607/socket-io-rooms-difference-between-broadcast-to-and-sockets-in –
代码看起来不错,也许,检查** data.room **。 –