【问题标题】:Node.js cluster and socket.io with mongodb as store使用 mongodb 作为存储的 Node.js 集群和 socket.io
【发布时间】:2013-06-12 17:51:57
【问题描述】:

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

我找到了一个选项 - mong.socket.io,但看起来我无法使用节点集群进行此操作。 我正在使用 node: 0.10.10,与 socket.io: 0.9
我正在寻找任何可以让我使用 MongoDB 作为在不同进程上运行的 socket.io 的存储的解决方案。

指望你,谢谢。

【问题讨论】:

    标签: node.js mongodb socket.io


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 2014-12-10
      • 2014-11-25
      • 2019-05-13
      • 2011-10-20
      • 1970-01-01
      相关资源
      最近更新 更多