Socket.io服务器无法广播到房间

时间:2015-12-18 19:44:13

标签: node.js socket.io broadcast

io.on("connection", function(socket){ 
    ...
    socket.on("join", function(id){
        socket.join(room);
        socket.broadcast.to(room).emit("joined", ...);
        ...
    });
    ...
});

socket.broadcast.to(room).emit("joined", ...);没有任何影响 它没有向房间发射事件

我已经尝试过使用:
socket.to(room).emit("joined", ...)
socket.in(room).emit("joined", ...) io.sockets.in(room).emit("joined", ...);
io.to(room).emit("joined", ...);
io.in(room).emit("joined", ...);

我正在使用socket.io server v1.3.7

任何解决方案?

5 个答案:

答案 0 :(得分:2)

尝试

io.to(room).emit("joined", ...);

答案 1 :(得分:0)

你应该能够通过发射到房间里的所有插座来获得你所追求的东西。如果您需要排除当前加入的套接字,则在加入之前发出该事件应该会为您提供所需的行为。

socket.join('roomName');
io.sockets.in('roomName').emit('joined', ...);

答案 2 :(得分:0)

试试这个:

io.sockets['in'](socket.room).emit('joined',....

答案 3 :(得分:0)

我在github上搜索过,没有人知道这个问题的根源。
可能是socket.io的系统问题。

答案 4 :(得分:0)

似乎搞乱了socket.id会产生不良后果,最好避免它!