在sails中启用sockets.io以在多个端口上运行

时间:2016-04-30 09:36:17

标签: socket.io sails.js sails.io.js

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

任何方式都这样做?

1 个答案:

答案 0 :(得分:0)

昨天我问了一个类似的问题,看来你的问题与我的相似,这就是我要实施的内容。

鉴于您将拥有多个可在不同端口上运行的实例,它们将无法直接相互通信并且会破坏websocket功能。

似乎there are multiple solutions to this(粘性会话与使用Redis的pub / sub功能),我选择了Redis。有一个名为socket.io-redis的模块。你还需要emitter module,就在这里。

如果您选择该路由,无论有多少台服务器(多台服务器具有多个实例)或您运行应用程序的单个服务器上的多个实例,由于Redis,它将正常运行。

至少这就是我现在所知道的,已经搜索了几天,还没有尝试过。

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

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;
}