套接字只能与一个socket.io进程通信

时间:2015-09-19 13:36:53

标签: node.js socket.io socket.io-redis

您好我正在尝试使用nodejs和socket.io进行多人游戏。 我正在使用多进程socket.io与cluster和socket.io-redis。如果你想广播消息,发出信号等,它的效果很好。

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

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

  1. Matchmake与同一进程中的用户---不太好。
  2. 在进程之间创建一个ipc方法,这样一个与目标客户端的方法可以广播客户端对正确进程的回答---太复杂,不确定是否解决了所有问题。
  3. 将客户端的socket.io进程更改为新进程,而无需用户注意到它---不确定这是否可行。
  4. 我在这里缺少什么吗?还有其他我无法想到的解决方案吗?

    任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

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