Node.js 套接字只能与一个Socket.io进程通信

Node.js 套接字只能与一个Socket.io进程通信,node.js,socket.io,socket.io-redis,Node.js,Socket.io,Socket.io Redis,你好,我正在尝试用nodejs和socket.io制作一个多人游戏。 我将多进程socket.io与集群和socket.io-redis一起使用。如果您想要广播消息、发出消息等,它工作得很好 但是,如果我想在代码中增加一些复杂性,问题就开始出现了。我希望我的游戏有一个配对功能 假设这种情况: 服务器找到2个想要玩并开始游戏的用户。 用户在同一台机器上的不同进程上。 问题是,客户机只能与一个进程通信,即首先进入的进程。 在我看来,有3种可能的解决方案: 与处于同一进程的用户进行匹配-不好 在进程之

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

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

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

  • 与处于同一进程的用户进行匹配-不好
  • 在进程之间创建一个ipc方法,这样目标客户机可以将客户机的答案广播给正确的进程——太复杂了,不确定是否解决了所有问题
  • 将客户机的socket.io进程更改为一个新进程,而不让用户注意到它——甚至不确定这是否可行
  • 这里有我遗漏的东西吗?还有其他我想不出来的解决办法吗


    感谢您的帮助

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

    您理解我的问题吗?显然不理解,但您在问题中似乎说了错误的话。使用socket.io,处于相同或不同进程中的用户可以进行通信。我想从进程B侦听来自进程A上的用户的事件。SocketIO客户端A(网页)发送一条消息
    io.emit('playing',{to:'user2'},func…
    服务器将获得该消息
    socket.on('playing'.
    ),然后发送该消息(感谢socket.io redis)给另一个用户。你需要的是,当他们玩游戏时,你想让他们加入游戏室,这样你就可以向游戏室发送消息。怎么样?我不想在用户之间进行通信。我希望处于进程a的用户a发送一条消息,最终到达进程B,然后服务器决定如何处理进程B这是一条信息。