Socket.IO 不同服务器上的房间

Socket.IO Rooms on different servers

我的目标

我想创建一个具有不同游戏室的游戏。游戏室没有任何形式的连接。只有一件事:我需要能够将玩家移动到其他房间。

我的想法

玩的人多,服务器多,每个服务器的nod​​e-instance多点就好了。

我用

带有 SocketIO 的 NodeJS。游戏室是 SocketIO 室。每个玩家只连接到一个房间。

问题

但是,如果我需要将用户从服务器 #1 的一个房间转移到服务器 #2 的另一个房间,我该怎么办?

我知道的方法

我找到了通过 NoSQL 和 Redis 在服务器之间建立连接的方法。我可以将这样的活动发送到其他房间。

但这似乎更好,我将向我的客户端发送命令:"disconnect from server #1, connect to server #2, to room ..."(并将所有可能的房间存储在 redis 客户端中)。所以,它将是直接连接,而不是 "server #1 -> redis -> server #2"。我希望它快点。

主要问题

有没有办法快速简单地将客户端连接从一台服务器转移到另一台服务器?或者可能使用 Redis pub-sub 的速度还不错,可以使用它吗?什么是最好的解决方案?

谢谢。

Redis 还行。 它非常快速且易于使用。