我正在尝试使用MEAN (不使用redis)构建一个聊天服务器,它使用socket.io来启用实时聊天。对于私有消息传递,我想实现socket.io内置的“房间”功能。流程如下:
User1想要开始与User2的对话,所以User1会发出一个事件,服务器会捕获该事件。在服务器中,我将此会话存储在数据库中,并将User1连接到一个房间。如果User2是在线的,那么我就加入User2也到了这个房间。为了完成这个步骤,我需要访问User2的套接字。经过大量的研究,我发现这种方法可以将每个连接用户的“套接字”存储在一个数组(或字典)中。我想知道除了将套接字存储在数组中之外,是否还有其他方法来检索套接字。
发布于 2014-06-06 13:01:20
不,没有更好的方法,除非您为这两个用户使用不同的命名空间,但我不认为这是您的情况。
发布于 2014-06-07 19:06:32
几年前,我使用费伊实现了一个基本的POC (概念证明)。
在我的例子中,我为活动用户创建了一个独特的通道。通道名与来自mongo的唯一用户标识符( _id )相同。这允许我向正确的用户发送消息,而不必存储有关其连接的信息。
请注意,我没有做任何性能测试,您需要打开很多连接。
我使用faye进行了类似的实现,通过向频道广播,在这种情况下,我将存储在连接到特定频道的数据库中。
https://stackoverflow.com/questions/24082121
复制相似问题