Socket.IO& Node.js - 向给定用户加入的所有房间广播

时间:2013-06-29 14:22:48

标签: node.js socket.io

是否有任何内置方式向所有房间广播消息给定用户已加入以外的默认房间?我正在使用以下代码片段来实现此目的,但如果可能的话,我希望以更清晰的方式实现相同的目标:

for (var room in io.sockets.manager.roomClient[socket.id])) {
    if (key) {
        socket.broadcast.to(key).emit('something');
    }
}

1 个答案:

答案 0 :(得分:0)

我不确定是否有本地方式,但可能类似(伪代码):

var rooms = {}; (inside client)
on join: rooms[0] = 'roomname'; rooms[1] = 'roomname2'; etc...
for(var i = 0; i < rooms.length; i++) {
    if(rooms[i] != 'default_excludedroomname') {
        io.sockets.in(rooms[i]).emit('message', etc...);
    }
}