Socket.io客户端到客户端的逻辑,有很多用户
我试图在我的应用程序中使用socket.io
和node.js
和Android
实现客户端到客户端的消息传递。
我search了一下,发现了很多教程,解释了在通过socket.io
套接字发送消息时如何处理针对特定客户端的问题。
用socket.io和node.js发送消息给特定的客户端
解决scheme几乎总是相同的:创build一个hashmap对象,将用户信息(如username
, email address
(或任何可以识别的唯一标识))与其socketid
。 然后调用io.clients[sessionID].send()
现在我有两个问题:
-
如果只有一个
app
实例正在运行,这将工作,但想象如果我的应用程序分为多个实例(对于大型应用程序)。 如果连接到实例X
的客户端A
想要发送消息给连接到实例Z
用户B
,该怎么办? 如果在示例中看到的是,直接将脚本存储在脚本中存在的简单对象中,则某些套接字将不知道其他实例中存在的其他用户。 -
如果我完全错了(我可能),这是一个很好的做法,将所有用户的
socketids
存储在一个单一的variables? 如果是的话,50000+的用户环境还是可以的吗? 如果不是,我应该find另一个解决scheme,像在数据库中存储用户的socketids
?
你可以使用一个redis实例,在你所有的app实例之间共享。 一石二鸟。
redis会将所有套接字ID存储在一个集中的地方。