【发布时间】:2012-06-03 04:56:51
【问题描述】:
我正在从事一个涉及在客户端之间发送数据的大型项目。所以,我只是在研究一些新技术。无论如何,我想我会试试 Nodejs。我只是有一个关于socketio和redis的问题。
当我们在 socketio 中使用 pub/sub 函数时,每个客户端连接都会创建一个到 redis 的新连接吗?或者,socketio 是否使用最多创建三个连接(总共,不考虑客户端数量)来执行发布/订阅内容?
【问题讨论】:
我正在从事一个涉及在客户端之间发送数据的大型项目。所以,我只是在研究一些新技术。无论如何,我想我会试试 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 应该能够处理大量连接和订阅,但一如既往地建议进行基准测试。
【讨论】: