私はsocket.ioライブラリに基づいて私のマルチプレイヤーゲームを持っています。私はnode.jsにマルチスレッドを扱うためのクラスタモジュールがあることを学びました。 私のゲームの世界は複数のゾーンで構成されており、それぞれのゾーンを独自の処理で処理する必要があります。特定のワーカーにユーザーのソケットを渡す方法が必要なので、ユーザーはゾーン間を移動できます。 node.jsドキュメントでは、クラスタモジュールがすべての接続に対してワーカーを選ぶためにラウンドロビン方式を使用していることを確認しました。多分、接続を操作するための回避策がありますか?Node.jsクラスタは特定のワーカーに接続を渡します
0
A
答えて
1
クラスタリングがあなたにとって最適なソリューションであるとは必ずしも言えません。クラスタリングの主な利点は、異なるプロセス間で着信接続の自動バランシングが行われることです。ただし、その機能を使用する必要はありません。特定のゾーンを処理しているプロセスに各接続を手動で割り当てる必要があります。
このように、必要なプロセスの数を開始し、そのゾーンに固有の各ポートを割り当ててから、クライアントがAjaxリクエストをマスターに送信してどのポート彼らは彼らのゾーンのためのsocket.io接続を行う必要があります。クライアントはそのajaxレスポンスを取得してから、そのゾーンの適切なサーバーに直接接続します。すべてのsocket.ioサーバーは、目的のマスターページのドメイン/ポートからのクロスオリジン要求を許可する必要があります。
ゾーンのサーバーへの接続は、上記のようにポート経由で行うことも、zone1.mygameserver.com
などの別のホスト名で行うこともできます。そして、nginxのようなものを使用して、ボックス。
関連する問題
- 1. 接続のための特定のワーカーの選択
- 2. Node.JS特定の接続IDにパケットを送信するSocket.IO
- 3. h2o hadoopクラスタのクラスタに接続する
- 4. GCE redisを使用してクリックして展開node.jsをノードのクラスタに接続
- 5. Node.jsのシリアルポートを持つ特定のデバイスへの自動接続
- 6. ノードJSクラスタの特定のワーカーを強制終了できません
- 7. DjangoテストDBに接続するCeleryワーカーを実行します。
- 8. 特定の接続ノードのURLを持つhadoopクラスタでh2oを起動する
- 9. 既存のワーカー/タスクに接続しますか?
- 10. キャノンはsocket.io-clientの特定のポートに接続します
- 11. VPCでクラスタに接続
- 12. neo4j HAクラスタに接続
- 13. Facebookのコメントボックスは、特定の写真に接続しました
- 14. hostinger DBをnode.jsと接続します
- 15. ETIMEDOUT Node.jsに接続
- 16. ¿AndroidをNode.jsに接続するには?
- 17. AKSクラスタに接続できません:接続タイムアウト
- 18. node.js httpクライアントでソケット接続のタイムアウトを設定するには
- 19. クラスタでのマングース接続エラー
- 20. BigCouchクラスタ接続の問題
- 21. mongodbとatlasクラスタの接続
- 22. javaを特定のソケット経由でクライアントに接続します。
- 23. spark-jobserver:ワーカーがドライバに接続しません
- 24. Node.js TCP接続
- 25. node.jsをhadoopプラットフォームに接続
- 26. Node.JSのデータベースに接続
- 27. JDBCを使用永続接続するには:クラスタが非アクティブ
- 28. Unixドメインソケットに接続するプログラムを特定します。
- 29. ドッカーコンテナ内の特定のシェルインスタンスに接続していますか?
- 30. Redis単一インスタンスのスレーブ(スレーブ)をクラスタまたはセンチネルに接続
あなたは創造的になり、プロセスを開始し、0mqのような何らかのキューを介してそれらと通信することができます。それはあなたが答えとして探しているものではないが、それは秋に戻る可能性があります – akaphenom
こんにちは@akaphenom、あなたの答えをありがとう。私は前にzmqについて聞いたことがありません。多分、zmqとnode.jsを使って同様の状況に対処する方法についてのリンクがありますか? – Gugis
あなたは 'nginx'や' HAProxy'のようなウェブサーバを使うだけでこれを解決できると思います。 'Docker'を使用して各サーバで同じアプリケーションの複数のインスタンスを起動し、' nginx'または 'HAProxy'を使ってロードバランスをとることができます。 –