如何使用node.js从客户端创建名称空间/房间?

时间:2017-08-24 16:47:36

标签: node.js socket.io

我想要做的是能够从客户端创建一个房间,但好像它是一个对象。例如: 我有一个名为“room”的类,这个类让我们说实现了3个事件,所以当你创建一个新房间时,你可以在每个房间触发这些事件。 这可能吗?这是我的服务器代码:

os.system('cls')

1 个答案:

答案 0 :(得分:0)

了解房间和名称空间之间的区别对于决定使用内容非常重要:

  客户端使用io.connect(urlAndNsp)连接

名称空间   (仅当客户端已存在时,才会将其添加到该命名空间   在服务器上)

     

会议室只能在服务器端加入(虽然可以创建API   在服务器端,使客户端加入是直截了当的)

您可以定义特定于命名空间的套接字事件,但如果先前未在服务器端定义该命名空间,则客户端将无法连接。

阅读更多: Rooms vs Namespaces

我认为处理不同渠道的最简单的解决方案,包括动态渠道名称(从客户端创建)是使用房间

客房加入/离开客户:

socket.io-client可以订阅多个房间,我给出了一个方法的答案:

Making server.side room subscribe/unsubscribe events that can be triggered from the client

它还解释了如何正确获取断开连接的客户端订阅的房间列表,以便向这些房间发送消息以通知客户端。