node.js と socket.io を使用してターンベースのマルチプレイヤー ゲームをほぼ完成させました。
私は、Webサーバーとしてexpress.jsを持ち、socket.ioを使用してゲームサーバーとして機能する別のクラスを持っています。
私の問題は、これら 2 つが同じアプリケーションで実行されていることです。ユーザーがログインしてプレーヤーの詳細を確認し、ロビーでチャットできる Web ランディング ページがあります。ここまでは、ゲーム ロジックに関連するものは何もありません。だから私は、なぜこのゲームサーバーがウェブサーバーと同じアプリで実行されているのか自問しています。また、将来的には異なるサーバー (ヨーロッパ サーバー、アメリカ サーバー、アジア サーバーなど) が存在する可能性がありますが、ランディング ページとログイン メカニズムは同じままです。
では、これを達成するための完璧な方法は何ですか?
1 つの Web サーバーと 1 つのゲーム サーバーの 2 つの個別の node.js アプリを作成する必要があります。ただし、その場合、ソケットとリクエスト間でセッション データを共有できますか?
もう 1 つの欠点は、サイトをナビゲートするときに予期しない動作が発生すると、Web サーバーが例外をスローしてアプリケーションを閉じ、ゲーム サーバーもシャットダウンする可能性があることです。