Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在多台服务器上扩展socket.io应用程序?_Node.js_Redis_Socket.io - Fatal编程技术网

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

Node.js 如何在多台服务器上扩展socket.io应用程序?,node.js,redis,socket.io,Node.js,Redis,Socket.io,我读了很多关于custering、redis的资料,但我找不到任何真实的样本 我有一个简单的socket.io应用程序,我需要将此应用程序扩展到许多服务器 看起来socket.io和Redistore是解决方案 有人对如何在许多服务器上使用socket.io有真实的了解吗?您需要npm安装软件包socket.io redis。然后通过命令redis server启动服务器。 在代码中添加以下行 var io = require('socket.io')(3000); var redis = re

我读了很多关于custering、redis的资料,但我找不到任何真实的样本

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

看起来socket.io和Redistore是解决方案


有人对如何在许多服务器上使用socket.io有真实的了解吗?

您需要
npm安装
软件包
socket.io redis
。然后通过命令
redis server
启动服务器。 在代码中添加以下行

var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 })); 
然后您需要修改nginx配置文件以启用负载平衡,如中所示


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

很抱歉,我不太理解:看起来您在同一台服务器(127.0.0.1)上实现了负载平衡,而目标是在多台服务器上扩展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;
}