当客户端连接到一个套接字io服务器时,它很容易(连接)房间。
但是,如果我在一个数据中心分配套接字io服务器,其中两个客户端或连接到两个单独的套接字io服务器。
如何将它们添加到房间(加入)以便他们可以进行交流
Socket Server-01 Socket Server-02
^ ^
| |
| |
v v
Client-01 Client-02
答案 0 :(得分:0)
使用诸如socket.io-redis之类的socket.io适配器将允许您执行此操作。
通过使用socket.io-redis适配器运行socket.io,您可以运行 不同进程或服务器中的多个socket.io实例 所有人都可以相互广播和发送事件。
在每个socket.io节点上设置适配器之后,它就可以正常工作,无需进一步更改所需的代码。
我个人喜欢使用ioredis而非默认node_redis,因为我发现它更可靠。
var Redis = require('ioredis');
var redisAdapter = require('socket.io-ioredis');
var io = require('socket.io')();
io.adapter(redisAdapter({
pubClient: new Redis('redis://:authpassword@127.0.0.1:6380/4'),
subClient: new Redis('redis://:authpassword@127.0.0.1:6380/4'),
}));
io.on('connection', function(socket) {
// do your thing.
});