gre*_*ola 11 node.js express socket.io
我一直在寻找有关为Node.js Socket.IO安装设置多服务器集群的帮助.这就是我想要做的:
n运行Express和Socket.IO的节点服务器的数量io.connect,然后将其过滤到负载均衡器后面的一个服务器.例如 - 如果我们在LB1(F5)后面有服务器A,服务器B和服务器C,并且用户A连接到服务器A,则用户B连接到服务器B,用户C连接到服务器C.
在"聊天"场景中 - 基本上如果从服务器A向message事件发出消息- 服务器B和C也应该将消息发送到其连接的客户端.我读到这可以使用socket-io.redis,但它需要一个Redis盒 - 应该安装哪个服务器?如果所有服务器都连接到同一个Redis框 - 这是否自动运行?
var io = require('socket.io')(server);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助!
这个问题的答案是您必须设置一个位于SocketIO群集之外的Redis服务器 - 并且所有节点都连接到它.
然后你只需在代码的顶部添加它,它就可以毫无问题地神奇地工作.
var io = require('socket.io')(server);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4525 次 |
| 最近记录: |