【发布时间】:2011-10-12 10:50:49
【问题描述】:
我有一个 nodejs 聊天应用程序,其中多个客户端使用 socketio 连接到一个公共聊天室。我想将其扩展到多个节点进程,可能在不同的机器上。但是,不能保证连接到同一个房间的客户端会命中同一个节点进程。例如,用户 1 将命中节点进程 A,而用户 2 将命中节点进程 B。他们在同一个房间,所以如果用户 1 发送消息,用户 2 应该会收到它。由于它们的连接由不同的进程管理,因此实现这一点的最佳方法是什么?
我想过让节点进程连接到 redis。这至少解决了进程 A 知道房间里还有另一个用户,用户 2,但它仍然不能发送给用户 2 的问题,因为进程 B 控制着联系。有没有办法为redis注册一个“值改变”的回调?
我处于无法控制任何路由或负载平衡的服务器环境中。
【问题讨论】:
标签: node.js heroku redis socket.io