存储由socket.io在MongoDB中创build的套接字

我试图创build一个基于Node.js的应用程序,使用Express,Socket.io和MongoDB(通过mongoose / mongo本地驱动程序)。

我的问题是,除了通过WebSocketsbuild立与客户端的连接外,我还获得了额外的信息,即存储和处理在数据库中是最好的。 然后随着事件的到来,我正在寻找客户端的基础上,额外的信息和套接字我发送通知给这些客户端。

我的问题 – 是否有可能将创build的套接字连接创build的对象存储到数据库?

如果没有,我的想法是将它们与一个附加variables一起存储在一个数组中,以便能够在数据库中查找find的项目以获取更多信息。 我对吗?

客户端 – >创build连接 – >发送数据 – >服务器 – >search数据库匹配的数据 – >匹配套接字创build的数据 – >通过创build套接字发送notifactions

诚挚

对于任何通过Google遇到这个问题的人来说,似乎现在有一个socket.io-mongo模块来处理这个问题。

你可以在mongodb中保存套接字列表和属于哪个节点进程,然后在消息需要传递给特定套接字时处理消息。 像每封邮件都有

{delivery_to:all}或{delivery_to:[1,2,3,4]}其中的数字是套接字ID。

但最好的方法是在mongodb中使用capped集合,并让所有进程监听集合并处理属于该进程的所有消息。 在这里可以find使用mongodb的队列实现的一个很好的描述。

http://www.10gen.com/presentations/mongosv-2011/mongodb-as-a-message-queue

好吧,我不知道这是消息队列最好的主意,但正如你提到mongoose。 从客户端你可以有消息和房间号(任何唯一的随机ID,必须join与服务器的初始连接或应注册到服务器IR简单地创build一个房间)到服务器的HTTP请求,并在服务器中保存消息MongoDB使用mongoose,现在使用mongoose模式后的方法,被解雇后mongoose做保存发送消息到房间。 所以它确实pub pub