我使用的是节点js 4.2.6版本并使用1.4.5 socket.io版本。我使用socket.io-redis模块作为socket.io的适配器。我有两个服务器端口3000和4000.我添加了计时器来打印连接套接字的总数,如下所示。
var socketio = require('socket.io')
var redis = require('socket.io-redis'),
io=socketio.listen(server);
io.adapter(redis({ host: '127.0.0.1', port: 6379 }));
setInterval(function() {
console.log("The total sockets are:::::::::::::", Object.keys(io.sockets.connected).length);
}, 5000 );
在一台服务器中,我获得了正确的客户端数量,但在另一台服务器中,我得到了0.如何在服务器之间同步socket.io客户端。
答案 0 :(得分:0)
您必须创建一个套接字模型并存储数据(在Mongo或Redis中......无论您正在使用什么),这样两个服务器实例都可以正确地请求和访问该信息。
答案 1 :(得分:0)
使用https://github.com/socketio/socket.io-redis时,有很多事情要做:
你的代码io.sockets.connected只依靠一台服务器(计算机/机器)