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

Socket.io server can't broadcast to room

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 服务器 v1.3.7

有什么解决办法吗?

你应该能够通过向房间内的所有插座发射信号来获得你想要的东西。如果您需要排除当前加入的套接字,则在加入之前发出事件应该会给您带来所需的行为。

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

尝试

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

试试这个:

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

我在 github 上搜索过,但没人知道这个问题的根源..
大概是socket.io.

的系统问题

似乎乱用 socket.id 会带来不好的后果,最好避免!