繁体   English   中英

一个socket只能和一个socket.io进程通信

[英]Socket can only communicate with one socket.io process

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

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

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

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

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

任何帮助表示赞赏!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM