こんにちは、nodejs と socket.io を使用してマルチプレイヤー ゲームを作成しようとしています。クラスターとsocket.io-redisでマルチプロセスsocket.ioを使用しています。メッセージをブロードキャストしたり、エミットしたりしたい場合にうまく機能します。
しかし、コードに複雑さを追加したい場合、問題が発生し始めます。ゲームにマッチメイキング機能を持たせたい。
次のシナリオを想定します。サーバーは、ゲームをプレイして開始したい 2 人のユーザーを見つけます。ユーザーは、同じマシン上の異なるプロセスを使用しています。問題は、クライアントが最初に入ったプロセスとしか通信できないことです。したがって、私が見る限り、3つの可能な解決策があります。
- 同じプロセスのユーザーとのマッチメイキング --- よくない。
- プロセス間に ipc メソッドを作成して、ターゲット クライアントを持つクライアントがクライアントの回答を正しいプロセスにブロードキャストできるようにします --- 複雑すぎて、すべてを解決できるかどうかわかりません。
- ユーザーが気付かないうちに、クライアントの socket.io プロセスを新しいものに変更します --- これが可能かどうかさえわかりません。
私がここに欠けているものはありますか?私が考えられない他の解決策はありますか?
どんな助けでも大歓迎です!