在多核服务器中使用socket.io与群集的好方法?

时间:2012-07-01 16:06:58

标签: node.js redis socket.io

我创建了一个nodejs应用程序,它在单核中运行良好。此应用程序使用socket.io进行轻量级和快速通信。

现在,我想通过使用nodejs中的cluster模块在​​多核系统上运行来垂直扩展我的应用程序。

我的应用程序中的所有内容都将数据存储在Redis中,因此,处理一些基本数据并没有问题。会话。

但是,当我使用集群生成多个工作进程时,似乎每个worker都有自己的套接字处理。

例如,我们假设有一个名为“客房”的聊天室。

用户A和用户B连接到房间,并将它们分发到不同的工作进程。

由于它们处于不同的进程中,并且这些进程不共享套接字侦听器,因此用户A和用户B无法相互通信。

解决这个问题的好方法是什么? socket.io是否支持多核系统?

socket.io仅用于单核使用吗?

1 个答案:

答案 0 :(得分:3)

您可以正常使用socket.io,但在后台使用redis存储。它还将支持socket.io上的多个实例,而无需任何外部库。它甚至支持多个实例的房间。

链接到如何使用redis设置socket.io:Using Multiples Nodes/Processes with socket.io