1

Redis ではなく MongoDB に基づいて、socket.io ストアを使用してクラスター化されたnode.js / socket.ioアプリをセットアップする際に問題が発生しました。私のアプリは Mongo を使用してデータを保存していることに言及する必要があります。だから私は soket.io を複数のプロセスで動作させるためだけに別の DB をセットアップしたくありません。

オプションmong.socket.ioを見つけましたが、これをノード クラスターで機能させることはできないようです。私はnode: 0.10.10、 with socket.io: 0.9
を使用しています。別のプロセスで実行される socket.io のストアとして MongoDB を使用できるソリューションを探しています。

頼りになります、ありがとう。

4

1 に答える 1

7

クラスター化されたワーカーは、必要なデータを取得するために、mongodbまたは mongooseを使用して MongoDB に簡単にアクセスできます。同様に、そのデータをキャッシュとしてローカルに保存することもできます。
socket.io クライアントが接続されると、ワーカーの 1 つにバインドされ、実行中にワーカーをスワップしません。
セッションを共有するには、ワーカーの 1 つから MongoDB にセッションの詳細を要求する socket.io 用のセッション ミドルウェアを作成する必要があります。共有セッションの詳細から socket.io のセッション データにアクセスする方法を説明するこの回答を確認してください。また、クラスター化するには、MemoryStorage の代わりにconnect-mongoを使用します。これにより、セッション データを mongo 内に保存できるようになり、セッションの詳細がワーカー間で共有されます。

于 2013-06-26T10:52:12.140 に答える