【发布时间】:2015-04-12 05:31:34
【问题描述】:
我的目标
我想创建一个具有不同游戏室的游戏。游戏室没有任何形式的连接。只有一件事:我需要能够将玩家移动到其他房间。
我的想法
会有很多用户在玩,所以在每台服务器上使用多个服务器和多个节点实例将是一件好事。
我用
带有 SocketIO 的 NodeJS。游戏室是 SocketIO 房间。每个玩家只连接到一个房间。
问题
但是,如果我需要将用户从服务器 #1 的一个房间移动到服务器 #2 的另一个房间,我应该怎么做?
我知道的方法
我找到了通过 NoSQL 作为 Redis 在服务器之间建立连接的方法。我可以将这样的事件发送到其他房间。
但这似乎更好,我将向我的客户端发送命令:“从服务器#1断开,连接到服务器#2,到房间......”(并将所有可能的房间存储在redis客户端中)。因此,它将是直接连接,而不是“服务器 #1 -> redis -> 服务器 #2”。我希望它快。
主要问题
有没有一种方法可以快速而简单地将客户端连接从一台服务器转移到另一台服务器?或者可能是使用 Redis pub-sub 的速度还不错,可以使用吗?最好的解决方案是什么?
谢谢。
【问题讨论】:
-
今后,请尝试将您的帖子更准确地集中在特定问题上。关于如何将客户端从一个 Socket.IO 服务器转移到另一个的问题可能非常有趣。但是,这个问题不仅与此有关,还与 Redis 性能有关,以及针对您的一般问题的任何其他可能的解决方案。这对 Stack Overflow 来说太宽泛了。
-
@JeremyBanks 可能我不清楚,因为语言(和压力),但问题更多的是与许多客户合作的最佳实践。 Redis 是一种方式。直接连接到不同的服务器(使用“连接到其他服务器”之类的命令)是第二个。我刚刚举了例子。