Socket.io提供一流的支持,使用rooms
来解决特定收件人问题我正在创建一个webapp,服务器通过Socket.io将通知传递给用户。这是一个市场。用户可能会喜欢/购买/销售文章,因此会在发生变化时通知服务器。
现在我必须做出选择,无论用户是否为登录时感兴趣的每篇文章加入一个房间,或者是否在每次更改内容时为每个用户单独发送消息。
什么更有效?有最好的做法吗?我是从错误的角度看待这个问题吗?
答案 0 :(得分:1)
房间只是服务器上的一个构造,用于跟踪套接字列表。当您向房间广播时,所有socket.io代码都会遍历套接字列表并分别向每个套接字发送消息。
因此,在任何一种情况下,都会将消息单独发送到每个套接字 - 两者都相同。如果用于跟踪插座组并且能够轻松地向每个插座发送消息的机制是有用的并且可以用于您的目的,则使用房间。
如果您有某种理由想要使用自己的数据结构来跟踪套接字列表,那么这也很好,并且不再需要花费它来循环并向每个数据结构发送消息,只要您有一个有效的方案来查找要将消息发送到哪个套接字。