【发布时间】:2013-10-18 13:13:47
【问题描述】:
我已经在谷歌上搜索了 2 天,以使用 nodeJs 在 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]:stackoverflow.com/questions/6873607/…
-
代码看起来不错,也许,检查data.room。