通过websocket在集群中检测客户端存在



我正在实现一个使用primus来处理websocket连接的nodejs服务器。服务器需要跟踪每个客户端的存在-并且服务器被实现为集群。

当客户端连接时,在redis上设置一个键来跟踪它与集群共享的存在,当客户端断开连接时,该键由同一线程更新。如果集群的一个线程崩溃,很明显到该线程的所有连接都将被丢弃。在这种情况下,我如何为每个断开连接的客户端更新redis状态?

在主服务器上跟踪线程死亡是否有意义?
cluster.on('exit', function(worker, code, signal) {
  //.. set as disconnected all the clients for this worker in redis
});

请看我们为这些场景开发的Primus插件:

https://github.com/primus/metroplex

它也使用Redis来存储连接,但是当它们从集群中删除时,它有清除服务器的方法。这个插件也由构建Primus的人(包括我;-))官方支持

相关内容

  • 没有找到相关文章

最新更新