我正在从事一个涉及在客户端之间发送数据的大型项目。所以,我只是在研究一些新技术。不管怎样,我想试试 Nodejs。我只是有一个关于 socketio 和 redis 的问题。
当我们在 socketio 中使用 pub/sub 功能时,是否每个客户端连接都会创建一个到 redis 的新连接?或者,socketio 是否使用最多创建三个连接(总共,无论客户端数量多少)来执行发布/订阅操作?
最佳答案
来自 the source ,似乎每个客户端连接都有两个关联的 Redis 订阅(代码中的 this.store
),但是每个 socket.io 服务器只有三个与 Redis 的连接(source)。
this.store.subscribe('message:' + data.id, function (packet) {
self.onClientMessage(data.id, packet);
});
this.store.subscribe('disconnect:' + data.id, function (reason) {
self.onClientDisconnect(data.id, reason);
});
Redis 应该能够处理大量连接和订阅,但一如既往地建议进行基准测试。
关于node.js - socketio 和 redisstore 扩展效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791177/