2017-11-23 23 views
0

ソケット接続を確立するためにサーバー上でwebsocketライブラリを使用しています。複数のサーバー間でwebsocket接続オブジェクトを維持する

https://github.com/websockets/ws

私は、クラスタ内の複数のサーバーを持って、私は、クラスタ内の別のサーバー上の同じソケット接続オブジェクトを使用する方法を知りたいです。

そしてまた、私はあなたが複数のサーバーに同じ実際のソケットオブジェクトを使用することはできませんウェブチャットの実装ネイティブのWebSocketやsocket.io

答えて

1

ための最良の選択肢であるかを知りたいです。ソケットオブジェクトは、クライアントと1つの物理サーバープロセス間のソケット接続を表します。サーバが接続しているかどうかを知るバーチャルソケットオブジェクトを構築し、そのサーバにメッセージを送り、実際のソケットを介して他のサーバから送信することが可能です。

socket.io/redis adapterはこれを行うための仮想的な方法の1つです。 node.jsクラスタを設定し、redisアダプタをsocket.ioとともに使用します。中央のRedisベースのストアを使用して、各物理接続がどのサービスプロセスに対応しているかを把握します。次に、任意のサーバープロセスから特定のクライアントにメッセージを送信する場合は、socket.ioを介してそのメッセージを送信し、そのソケットが接続されているredisデータベースを検索し、その実際のサーバーに接続し、他のサーバプロセスに現在存在するsocket.io接続を介してその特定のクライアントにメッセージを送信することができます。同様に、ソケットのグループにブロードキャストすることもできます。実際にどのサーバーに接続していても、メッセージがクライアントに届くようにすべての作業を行います。

あなたは普通のwebSocket接続のために自分自身と同様のものを構築し、他のものは確かにそれを構築することができます。私は平野webSocketのための勧告を提供するために野生の中に存在するものに十分に精通していません。そこにはplenty of articlesが水平にwebSocketサーバをスケーリングしています。これは、Googleと一緒に見つけることができます。

+0

ありがとうございますjfriend00 –

+0

@shubhamkatariya - あなたの質問が今すぐ回答された場合は、回答の左側にあるチェックマークをクリックしてコミュニティに示すことができます。また、適切な手順に従うためにスタックオーバーフローについての評判を得ることができます。 – jfriend00

関連する問題