Nodjs如何将消息广播到名称空间与房间

我可以使用以下代码将消息发送到特定的命名空间

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'); 

如果你想指定命名空间,你可以添加“。(namespace)”。

这样做是为了向发件人以外的所有人发送信息:

 socket.broadcast.emit('event', "this is a test"); 

我有这个问题。 io.of()困惑了我。

当你使用“连接”作为io.of()时,

你的套接字已经有了命名空间。 所以你只是添加特定的空间。

io.of(namespace).in(room).emit('functionname',data); – > sokcet.broadcast.emit('event',data);