如何在多个服务器上扩展socket.io应用程序?

时间:2015-05-20 20:37:05

标签: node.js redis socket.io

我已经阅读了很多有关custering,redis的内容,但我找不到真正的样本。

我有一个简单的socket.io应用程序,我需要将此应用程序扩展到许多服务器。

看起来像socket.io和RedisStore是解决方案。

有没有人有关于他如何在许多服务器上使用socket.io的真实世界的小说?

1 个答案:

答案 0 :(得分:2)

您需要npm installsocket.io-redis。然后通过命令redis-server启动服务器。 将以下行添加到您的代码中。

var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 })); 

然后,您需要修改nginx配置文件以启用负载平衡,如http://socket.io/docs/using-multiple-nodes/#nginx-configuration

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

重新启动nginx服务器,然后运行节点服务器。这也应该扩展您的服务器。