Socket.io广播到客户端的名称空间

时间:2016-07-23 02:04:05

标签: node.js sockets socket.io namespaces

我在服务器端创建了两个名称空间。根命名空间和GroupChatEvents命名空间。

在客户端中,我想向两个命名空间广播消息。这可能吗?

客户端代码

var socket = io();
var GroupChatEventsSocket = io('/GroupChatEvents');

GroupChatEventsSocket.emit和socket.emit都只发送到它们的特定名称空间。如何广播到多个特定的命名空间?

由于

1 个答案:

答案 0 :(得分:0)

无法从客户端直接向命名空间广播。相反,您可以创建一条消息,发送给服务器,告知服务器要向哪个名称空间广播,然后在服务器上为该消息创建一个侦听器。请记住,webSocket / socket.io中没有客户端到客户端的连接。所有连接都是客户端到服务器。

因此,如果您想要发送给其他客户端的东西,您必须要求服务器为您执行此操作。无论是发送到单个客户端还是广播到连接到特定命名空间的所有客户端,都是如此。

  

如何广播到多个特定的命名空间?

创建可以发送到服务器的消息,该消息指定消息内容以及要将其发送到的命名空间列表。然后,在服务器上为该消息实现一个侦听器,当它收到该消息时,它可以获取所需的消息并将其发送到每个所需的命名空间。

请记住,除非您对允许的人进行某种身份验证,否则任何人都可以连接到您的服务器并执行此类广播。