我如何使用猫鼬在朋友列表中有效显示状态“已连接用户”?

我也在使用套接字io(我计划切换到套接字p2p)

我的朋友列表是一个以uid,name,pic,socket作为道具的对象数组,该数组存储在我的个人资料文档中。

我在这里看到了几种选择,但找不到最佳选择


使用运算符$ in查询连接到该应用程序的所有用户,并将结果与​​我的朋友数组匹配
将每个登录的用户存储在单独的集合中,并进行比较
在具有每个朋友的套接字ID的套接字io适配器中搜索(这里要处理的几个问题,例如:浏览器刷新)


谢谢你的帮助

最佳答案

考虑为此目的使用PrimusPrimus Rooms。基本上,Primus是套接字层的抽象,使您可以使用其他Web套接字实现。

Primus Rooms添加了功能,使客户(您的情况下的朋友)加入某个“房间”,然后向所有连接的客户广播消息。

由于这些开源工具可以为您提供所需的功能,因此没有必要重新发明轮子。

关于猫鼬:默认情况下,Primus Rooms使用“内存适配器”。这意味着当客户加入房间时,它不会持久存在。但是,请随时为Primus Rooms编写一个Mongoose适配器并将其贡献给社区。

10-06 00:12