扩展NodeJS聊天室 - 在Redis中存储连接状态

时间:2012-11-07 04:44:49

标签: node.js redis socket.io

聊天室应用程序在多台服务器上运行,包含两项服务:
1.连接经理
在加入聊天室之前,客户端首先要求连接管理员提供聊天服务URL 2.聊天服务
典型的基于socket.io的聊天实现。

我需要在Redis中存储每个客户端的连接状态,例如用户连接到哪个房间,一个房间中有多少用户等等。因此连接管理器可以使用数据进行负载平衡。

我可以使用套接字连接/断开事件来维护Redis中的当前连接状态,但是如果NodeJS服务器出现故障,如何确保Node和Redis数据同步?最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

  

我可以使用套接字连接/断开事件来维持当前   Redis中的连接状态,但是在NodeJS服务器出现故障的情况下,如何   确保Node和Redis数据同步?

例如,您可以在redis中创建一个集合,其中包含对特定服务器节点管理的密钥的引用。如果节点出现故障或重新启动,则可以使这些密钥无效。