我正在实现一个使用primus来处理websocket连接的nodejs服务器。服务器需要跟踪每个客户端的存在 - 并且服务器实现为集群。
当客户端连接时,在redis上设置密钥以跟踪其与群集共享的存在,并且当客户端断开连接时,密钥由同一线程更新。 如果集群的一个线程崩溃,很明显将删除该线程的所有连接。 在该场景中,如何更新每个断开连接的客户端的redis状态?
跟踪主人的线程死亡是否有意义?
cluster.on('exit', function(worker, code, signal) {
//.. set as disconnected all the clients for this worker in redis
});
答案 0 :(得分:0)
请查看我们为这些场景开发的Primus插件:
https://github.com/primus/metroplex
它还使用Redis来存储连接,但是在从群集中删除服务器时可以清除它们。这个插件也得到了构建Primus(包括我; - ))
的人们的正式支持