2012-07-01 4 views
7

私は、単一コアでうまく動作するnodejsアプリケーションを作成しました。このアプリケーションは、光のためにsocket.ioを使用します。&高速通信。マルチコアサーバでcluster.soをsocket.ioと使用する良い方法はありますか?

nodejsのclusterモジュールを使用してマルチコアシステム上で動作させることで、アプリケーションを垂直方向に拡張したいと考えました。

私のアプリケーション内のすべてのデータはレディスに格納されているため、いくつかの基本データを処理するのに問題はありません&セッション。

しかし、私はクラスタを使用して複数のワーカープロセスを起動すると、各ワーカーが独自のソケット処理をしているようです。

たとえば、ゲストルームと呼ばれるチャットルームがあるとします。

ユーザーAとユーザーBが部屋に接続し、別のワーカープロセスに配布されます。

これらのプロセスは異なるプロセスであり、これらのプロセスはソケットリスナーを共有しないため、ユーザーAとユーザーBが互いに話す方法はありません。

この問題を解決するにはどうすればよいでしょうか? socket.ioはマルチコアシステムに対応していますか?

socket.ioはシングルコアでのみ使用できますか?

+3

あなたはプロセス/サーバを経由スケーリングするため 'RedisStore'でsocket.io実行することができます。詳細については、[この前の私の回答](http://stackoverflow.com/questions/9267292/examples-in-using-redisstore-in-socket-io/9275798#9275798)を参照してください。 –

答えて

3

通常はsocket.ioを使用できますが、バックグラウンドにredisストアがあります。また、外部ライブラリなしでsocket.ioの複数のインスタンスをサポートします。複数のインスタンスにまたがって部屋をサポートします。 Redisのでsocket.ioを設定する方法に

リンク:Using Multiples Nodes/Processes with socket.io

+0

リンクは実際にあなたが思った場所を指していないと思います。 – funerr

+0

私も思います。私はそれを編集させてください。 –

関連する問題