0

我必须设置sails应用程序,我可以在多个端口上建立socket.io连接 - 例如端口3999上的身份验证和端口4999上的数据同步。

有什么办法吗?

4

1 回答 1

0

我昨天问了一个类似的问题,看来你的也和我的很相似,这就是我要实现的。

鉴于您将有多个实例将在不同的端口上工作,它们将无法直接相互通信,这会破坏 websocket 功能。

似乎有多种解决方案(粘性会话与使用 Redis 的发布/订阅功能),我选择了 Redis。有一个名为socket.io-redis的模块。您还需要发射器模块,它就在这里。

如果您选择该路线,无论有多少服务器(具有多个实例的多个服务器)或在您运行应用程序的单个服务器上的多个实例,由于 Redis,它都将毫无问题地运行。

至少我现在知道的就是这样,找了几天,还没试过。

更不用说,您可以使用 Nginx 进行负载平衡,如下所示。(从 socket.io 文档复制)

upstream io_nodes {
  ip_hash;
  server 127.0.0.1:6001;
  server 127.0.0.1:6002;
  server 127.0.0.1:6003;
  server 127.0.0.1:6004;
}
于 2016-05-01T00:30:08.723 回答