【问题标题】:Node.js chat app and clustersNode.js 聊天应用程序和集群
【发布时间】:2012-09-17 17:52:01
【问题描述】:

我想用 node.js 和:socket.io,cluster - modules/plugins 制作聊天应用程序。

所以我有只创建几个子集群的主集群。 现在,每个子集群在同一个端口上都有 socket.io 连接。但是我应该在哪里将所有套接字(用户)组合成对,在哪个子集群中?一些套接字在一个集群中,而一些套接字在另一个集群中。

我可以通过这个 clusterhub 同步所有 socket.io 连接: http://toolbox.no.de/packages/socket.io-clusterhub

所以每个集群都有所有套接字,但是哪个子集群应该将套接字组合成对? 一般来说,我需要对子集群做一些事情,并且需要访问所有子集群的所有套接字。

【问题讨论】:

    标签: javascript node.js socket.io cluster-computing


    【解决方案1】:

    您需要将不同的 socket.io 实例与消息队列或 Socket.IO 存储连接,以便它们相互通信并将消息传递到不同的实例。

    Socket.IO 已经有了 Stores 的概念,用于存储连接,它是 socket.io 对部署多个服务器和进程的回答。 Socket.IO 附带 2 个存储,一个将所有连接信息保存在进程内的内存存储和一个 RedisStore,它将在所有连接的进程之间同步所有信息。

    请参阅https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO(关于商店的部分)了解有关如何实施的更多信息。

    【讨论】:

    • socket.io-clusterhub 插件用于同步 socket.io 实例,所以我会使用它,但是我应该在哪个实例中将用户连接成对呢?如果客户端将消息发送到 socket.io 的其他主题,socket.io 的每个实例都会得到它,因此将是双重事件或三重事件.. 等等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多