我正在做一个相当大的项目,涉及在客户端之间发送数据。所以,我只是在研究一些新技术。无论如何,我想我会尝试一下 Nodejs。我只是有一个关于socketio和redis的问题。
当我们在 socketio 中使用 pub/sub 函数时,每个客户端连接都会创建一个到 redis 的新连接吗?或者,socketio 是否使用最多创建三个连接(总共,无论客户端数量如何)来执行发布/订阅内容?
从源码来看,似乎每个客户端连接都有两个关联的 Redis 订阅(this.store
在代码中),但每个 socket.io 服务器只有三个到 Redis 的连接(源码)。
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 应该能够处理大量连接和订阅,但一如既往地建议进行基准测试。