我有一个 nodejs 聊天应用程序,多个客户端使用 socketio 连接到一个公共聊天室。 我想将其扩展到多个节点进程,可能在不同的机器上。 但是,连接到同一房间的客户端不能保证会命中同一个节点进程。例如,用户1将连接到节点进程A,而用户2将连接到节点进程B。他们在同一个房间里,因此如果用户1发送消息,用户2应该收到它。由于它们的连接由不同的进程管理,因此如何实现这一点是最好的方式?
我考虑让节点进程连接到 Redis。这至少解决了进程A将“知道”房间中还有另一个用户(用户2)的问题,但它仍然无法向用户2发送消息,因为进程B控制该连接。是否有一种方法可以为 Redis 注册“值更改”回调函数?
我处于一个服务器环境中,无法控制任何路由或负载平衡。
我考虑让节点进程连接到 Redis。这至少解决了进程A将“知道”房间中还有另一个用户(用户2)的问题,但它仍然无法向用户2发送消息,因为进程B控制该连接。是否有一种方法可以为 Redis 注册“值更改”回调函数?
我处于一个服务器环境中,无法控制任何路由或负载平衡。