pm2
を使用して3つのノードインスタンスをスピンしました。彼らはすべて、websocket
サーバー(9300,9301、および9302)を使用してサーバーを実行しています。ノードインスタンス間で接続ソケットを切り替える方法は?
私のメインサーバは、nginx
ロードバランサとして機能します。 nginx
上流ブロック:10人のプレイヤーが接続した後
upstream websocket {
least_conn;
server 127.0.0.1:9300;
server 127.0.0.1:9301;
server 127.0.0.1:9302;
}
、彼らはラウンドロビン方式で分散されています。私はまた、node
のすべてのインスタンスに対してPub/Sub
のためにRedis
を利用しています。
接続しているプレーヤーが9300
の場合、接続が失われずに9302
に切り替わる可能性があるのですか?
私のゲームはインスタンスに基づいているからです。もし私が "ゲーム"を持っていれば、そのプレイヤーは作ったり参加したりすることができます。 のプレイヤーをゲームの同じノードインスタンスに接続することができれば、私は余分なPub/Sub
シグナルをすべて減らし、より良い待ち時間を達成できます。
これが完成しました。だから、プレイヤーにどのポートに再接続するかを伝えるだけでよいので、両方が同じインスタンスになるようにする必要があります。それは悪くはない、再接続のトレードオフは、ゲームの全生涯にわたってPub/Sub信号を費やしていないのに対して - Thanks @ jfriend00 –