-1

您好,我正在尝试使用 nodejs 和 socket.io 制作多人游戏。我正在使用带有集群和 socket.io-redis 的多进程 socket.io。如果你想广播消息、发射等,它工作得很好。

但是如果我想在我的代码中增加一些复杂性,问题就会开始出现。我希望我的游戏有匹配功能。

假设这种情况:服务器找到 2 个想要玩并开始游戏的用户。用户在同一台​​机器上的不同进程上。问题是客户端只能与第一个进入的进程进行通信。因此,我认为有 3 种可能的解决方案:

  1. 与处于同一进程中的用户进行匹配 --- 不好。
  2. 在进程之间创建一个 ipc 方法,以便具有目标客户端的那个可以将客户端的答案广播到正确的进程 --- 太复杂,不确定是否能解决所有问题。
  3. 在用户没有注意到的情况下将客户端的 socket.io 进程更改为新进程 --- 不确定这是否可能。

我在这里缺少什么吗?还有其他我想不到的解决方案吗?

任何帮助表示赞赏!

4

1 回答 1

0

使用 socket.io-redis 的用户即使在不同的服务器/进程中也可以进行通信,这就是它存在的原因。

于 2015-09-19T14:54:08.003 回答