现在我有一个文字游戏,用户随机配对并互相发送消息。我正在使用 Node.js 和 Socket.io。基本上,我将 socket.id 存储为用户对象的键。属性之一是其合作伙伴的 socket.id。因此,当有人发送消息时,我有逻辑找到该用户并获取他们的合作伙伴 socket.id,然后我将消息发送到那个特定的 socket.id。
但是,当我在 NGINX 或其他负载均衡器后面有多个 Node 实例时,这将不起作用。我研究过使用 Redis 之类的工具,但是我发现的每个示例都涉及跨实例向用户发送相同的消息。我不会在多个实例中向成千上万的人发送相同的消息。我只是在两个人之间发送消息,但是这些小聊天室中的许多都需要存在。如果两个用户因为位于不同的 Node 实例上而无法配对怎么办?即便如此,我觉得我不应该将每条消息都发送到 Node 的每个实例,并且在所有实例上什么都不做,除了合作伙伴连接的那个实例。
任何有关解决此类问题的信息将不胜感激。