我如何使用猫鼬在朋友列表中有效显示状态“已连接用户”?
我也在使用套接字io(我计划切换到套接字p2p)
我的朋友列表是一个以uid,name,pic,socket作为道具的对象数组,该数组存储在我的个人资料文档中。
我在这里看到了几种选择,但找不到最佳选择
使用运算符$ in查询连接到该应用程序的所有用户,并将结果与我的朋友数组匹配
将每个登录的用户存储在单独的集合中,并进行比较
在具有每个朋友的套接字ID的套接字io适配器中搜索(这里要处理的几个问题,例如:浏览器刷新)
谢谢你的帮助
最佳答案
考虑为此目的使用Primus和Primus Rooms。基本上,Primus是套接字层的抽象,使您可以使用其他Web套接字实现。
Primus Rooms添加了功能,使客户(您的情况下的朋友)加入某个“房间”,然后向所有连接的客户广播消息。
由于这些开源工具可以为您提供所需的功能,因此没有必要重新发明轮子。
关于猫鼬:默认情况下,Primus Rooms使用“内存适配器”。这意味着当客户加入房间时,它不会持久存在。但是,请随时为Primus Rooms编写一个Mongoose适配器并将其贡献给社区。