【发布时间】:2014-08-11 09:48:18
【问题描述】:
我有一个套接字服务器,想知道特定用户是否有一个或多个连接的套接字。
出于负载平衡和扩展目的,可以在不同位置有多个套接字服务器,因此理论上客户端可以有多个套接字连接,每个连接位于套接字服务器的不同位置/实例。
在套接字连接时,我为用户增加一个 redis 密钥,在套接字断开连接时,我减少密钥。
但是,如果我手动或通过永久/主管重新启动套接字服务器,则不会调用递减计数器,从而为该用户提供不正确的打开套接字连接数。
我的问题是,可以使用当前的方法进行一些调整以将准确的数字存储在 redis 中,还是我应该考虑使用另一种方法?
编辑:在每个套接字连接上,我使用 redis 客户端订阅特定频道。这个可以用吗?
编辑:我可以从client.publish 回调中获取返回值,以查看有多少订阅者收到了消息:
client.publish("somechannel", "some message", function(err, val){
console.log("here with val: " + val);
});
但这个值似乎并不总是准确的。
编辑:我从client.publish( 获得不准确数字的原因是我错误地取消了相关频道的订阅。上面的编辑似乎有效。
【问题讨论】: