Mongoose查询连接的朋友

我怎么能有效地显示状态“连接的用户”在我的朋友列表使用mongoose?

我也使用套接字io(我打算切换到套接字p2p)

我的朋友列表是一个对象的数组与uid,名称,图片,套接字作为道具和这个数组存储在我的个人资料文件。

我在这里看到了一些select,但不知道什么是最好的

  1. 使用操作符$ in查询连接到应用程序的所有用户,并将结果与​​我的朋友数组进行匹配

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

  3. search与每个朋友的套接字ID的套接字io适配器(在这里处理的问题,例如:浏览器刷新)

谢谢你的帮助

考虑为此使用Primus和Primus房间 。 基本上Primus是您的套接字层的抽象,并为您提供使用不同的Web套接字实现的可能性。

Primus客房增加了让客户(你的情况下的朋友)join某个“房间”,然后向所有连接的客户端广播消息的function。

由于这些开源工具可以给你所需的function,重新发明轮子是没有意义的。

关于Mongoose:Primus Rooms默认使用“内存适配器”。 这意味着客户join房间时不会持续。 不过,请随时为Primus客房编写一个Mongoose适配器,并将其提供给社区。