【发布时间】:2011-11-24 19:50:52
【问题描述】:
我有一个 node.js tcp 服务器,用作 iPhone 聊天客户端的后端。由于我的实现包括私人群聊,我将用户列表和他们所属的聊天室存储在内存中,以便适当地路由消息。假设我的聊天服务器总是在一台机器上,这一切都很好,但是当/如果我需要水平扩展时,我需要一种向连接到不同服务器的客户端广播消息的好方法。我不想开始在节点服务器之间进行进程间通信,并且更喜欢与 redis 共享状态。
我有一些想法,但我想知道是否有人对此有好的解决方案?这里要清楚的是一个例子:
用户 1 连接到房间 X 上的服务器 1,用户 2 连接到房间 X 上的服务器 2。用户 1 发送一条消息,我需要将它传递给用户 2,但由于我使用的是内存数据结构服务器不共享状态。我希望我的节点服务器尽可能保持低调,这样我就可以根据系统的需要添加/删除。
谢谢:)
【问题讨论】: