对连接的朋友进行Mongoose查询

时间:2015-10-15 19:05:26

标签: node.js mongodb mongoose socket.io

如何使用mongoose有效地在好友列表中显示“已连接用户”状态?

我也使用socket io(我计划切换到socket p2p)

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

我在这里看到了几个选项,但无法弄清楚什么是最好的

  1. 使用运营商$ in查询连接到该应用的所有用户,并将结果与​​我的朋友数组相匹配

  2. 将每个登录用户存储在一个单独的集合中并进行一种比较

  3. 在套接字io适配器中搜索每个朋友的套接字ID(这里要解决几个问题:浏览器刷新)

  4. 感谢您的帮助

1 个答案:

答案 0 :(得分:1)

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

Primus Rooms增加了让客户(您的朋友)加入某个房间的功能。然后向所有连接的客户端广播消息。

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

关于Mongoose:Primus Rooms使用"内存适配器"默认情况下。这意味着当客户加入房间时,持久存在。但是,您可以随意为Primus Rooms编写一个Mongoose Adapter并将其贡献给社区。