我可以用以下代码将消息发送到特定的命名空间房间
io.of(namespace).in(room).emit('functionname', data);
但是它发送到所有连接的客户端,包括发送者,我想要的是我想发送不包括发送者的消息,我尝试了以下方法,但由于语法不正确,一切都失败了
io.broadcast.of(namespace).in(room).emit('functionname', data);
io.of(namespace).broadcast.in(room).emit('functionname', data);
io.of(namespace).in(room).broadcast.emit('functionname', data);
io.of(namespace).in(room).broadcast('functionname', data);
如何将邮件发送给除发件人之外的所有客户端。
我相信你想要的是:
// send to all clients except sender
socket.broadcast.emit('event', "this is a test");
// send to all clients in 'room' room except sender
socket.broadcast.to('room').emit('event', 'whadup');
// sending to all clients in 'room' room, include sender
io.sockets.in('room').emit('event', 'woodup');
如果您也希望指定命名空间,则可以添加"of。(namespace)"。
这样做可以向除发送者之外的所有人发送消息:
socket.broadcast.emit('event', "this is a test");
我遇到了这个问题。io。of()把我弄糊涂了。
当您使用"connection"作为io.of()时,
您的套接字已具有命名空间。所以你只需要添加特定的房间。
io.of(namespace).in(room).emit('functionname',data);->sokcet.abroady.emit(事件,数据);
我也遇到了这个问题。关键是使用socket
而非io
这将不起作用:
io.of(namespace).broadcast.to(room).emit('event', data)
然而,这将起作用:
socket.to(room).emit('event', data)
不过,一个缺点是,只有当你要发送的套接字位于你想要发送的命名空间中时,这种方法才会起作用。如果你想发送到另一个命名空间,我认为这种方法不适用