实用或最佳的socket.io实现

我有一个执行套接字的问题。 情况:用户在他的列表中有n个房间,用户应该能够从每个房间接收通知。

方法1)为每个房间用户打开一个套接字。 在这个用户必须为每个房间打开多个套接字

方法2)用户打开房间名= userid的单个套接字,节点维护每个房间的列表('room_user')和该房间中的用户(这可以在连接时完成)。 例如

room_user:{ room1 : { user1Id, user2Id } room2 : { user1Id, user3Id } } 

对于发送消息,服务器从指定房间的列表中获取用户标识,然后将消息循环发送给所有用户。 在这种方法中,用户只能打开一个套接字,但服务器必须在一个循环中发送相同的消息

我想知道哪种方法更适合

如果你考虑下层的TCP / IP广播系统,你可能会发现用户有一个单独的websocket连接和服务器循环,并一次又一次地发送相同的消息(你的问题的方法2)。

请允许我解释一下:

TCP / IP不支持广播。 因此,将相同的消息发送到多个连接实际上是通过循环连接列表来实现的,并一次又一次地发送相同的消息。

确实,你的代码将循环移到更高层次的应用程序,但是它可能会比有许多连接阻碍你扩展应用程序的能力要好。