バックエンドが NodeJS で記述され、リアルタイム通信に socket.io を使用するゲームを開発しています。
私のゲームの特徴の 1 つはマッチメイキングです。基本的に、2 人以上のプレイヤーがマッチメイキング期間にある場合、私のアプリケーションはそれらのプレイヤー用のゲーム ルーム (特別な socket.io ルーム) を作成し、ゲームを開始します。
これを行うには、次の 2 つの方法があります。
NodeJS で setInterval を作成します。インターバルでは、playersInMatchmaking 配列を確認します。アレイに 2 人以上のプレーヤーがいる場合は、ゲーム ルームを作成します。サーバーがオンラインである限りループします。
setInterval に依存する代わりに、
socket.on("matchmaking start")
またはsocket.on("matchmaking stop")
特定のアプローチを使用する利点はありますか? setInterval はソケット ロジックからマッチメイキング アルゴリズムを切り離すことができるため簡単に思えますが、マッチメイキング アルゴリズムはソケット イベントではなくループで実行されるため、パフォーマンスは低下します。
どう思いますか?他にもっとうまくいくアイデアはありますか?