我可以使用以下代码
将消息发送到特定的命名空间 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);
如何将邮件发送给除发件人之外的每个客户。
答案 0 :(得分:3)
我相信你想要的是:
// 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)”。
答案 1 :(得分:1)
这样做是为了向发件人以外的所有人发送邮件:
socket.broadcast.emit('event', "this is a test");
答案 2 :(得分:0)
我遇到了这个问题。 io.of()让我很困惑。
当您使用'连接' as io.of(),
你的套接字已经有了命名空间。所以你只需添加特定的空间。
io.of(namespace).in(room).emit(' functionname',data); - > sokcet.broadcast.emit('事件',数据);
答案 3 :(得分:0)
我也遇到了麻烦。
关键是要用
socket
而非io
这将不起作用:
io.of(namespace).broadcast.to(room).emit('event', data)
但是,这将起作用:
socket.to(room).emit('event', data)
尽管有一个缺点,那就是只有当您要发送的套接字在您要发送到的命名空间中时,这才起作用。如果您想发送到其他名称空间,我认为这种方法不起作用