小编典典

在多核服务器上将socket.io与群集一起使用的好方法?

redis

我创建了一个nodejs应用程序,该应用程序在单个内核中运行良好。此应用程序使用socket.io进行轻快的通信。

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

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

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

例如,假设有一个称为“来宾”室的聊天室。

用户A和用户B连接到会议室,并且它们被分配到不同的工作进程。

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

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

socket.io仅用于单核吗?


阅读 272

收藏
2020-06-20

共1个答案

小编典典

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

链接到如何使用Redis设置socket.io:通过
socket.io 使用多个节点/进程

2020-06-20