使用mongodb作为存储的Node.js集群和socket.io

我有一个问题,build立群集node.js / socket.io应用程序,与socket.io存储,不是基于Redis,而是在MongoDB。 我需要提到的是我的应用程序使用Mongo来存储数据。 所以我不想设置另一个数据库只是为了让soket.io跨多个进程工作。

我发现一个选项 – mong.socket.io ,但看起来我不能使这个工作与节点集群。 我使用节点:0.10.10 ,与socket.io:0.9
我正在寻找任何解决scheme,使我可以使用MongoDB作为socket.io存储在独立的进程上运行。

依靠你,谢谢。

任何群集的工作人员都可以使用mongodb或mongoose轻松访问MongoDB以获取所需的数据。 它也可以将数据本地存储为caching。
一旦socket.io客户端连接,它将被绑定到其中一个工作者,并且在执行期间不会交换工作者。
为了共享会话,您需要为socket.io创build会话中间件,该会话中间件将向来自其中一个工作人员的MongoDB请求会话详细信息。 检查这个答案,解释如何从共享会话详细信息中访问socket.io中的会话数据。 而为了使它成为集群,而不是MemoryStorage使用connect-mongo ,它允许将会话数据存储在mongo中,并且会使会话详细信息共享给worker。