0

Node.jsを使用して小さなプロジェクトを開発しています。モデルに使用mongooseしているので、を使用していMongoDbます。そして、私はセッションを続けますMongoStoresocket.ioまた、Nodeのいくつかのプロセスを実行して使用したいと思います。socket.ioドキュメントから:

    The MemoryStore only allows you deploy socket.io on a single process. 
If you want to scale to multiple process and / or multiple servers 
you can use our RedisStore which uses the Redis 
NoSQL database as man in the middle.

だから私も必要だと思いRedisます。私はNodeを初めて使用し、知りたいのですが、アプリケーションのさまざまな部分を管理するために2つのデータベースを使用するのが普通ですか。またはsocket.io、Nodeの複数のプロセスを実行し、のみを使用する場合に使用する方法はありますかMongoDb

4

2 に答える 2

4

つい最近、 mubsub(Node.jsおよびMongoDBの場合はPub / sub)を使用したpub/sub機能を備えたMongoStoreを使用するソリューションが登場しました。

RedisStoreの場合とほぼ同じ方法でsocket.ioに接続できます。

io.configure(function() {
    io.set('store', new MongoStore({host: 'localhost', port: 27017, db:'session_db'}));
});

詳細とソース:https ://github.com/kof/socket.io-mongo

于 2012-07-08T14:50:32.733 に答える
2

RedisストアはすでにSocket.IOに組み込まれていますが、さらに重要なことに、Socket.IOに特に必要な2つの重要な機能があります。

1)パブリッシュ/サブスクライブ(プロセス間で通信するため)
2)Key-Valueストア(接続に関するすべての情報を格納するため)

Key-Valueストア部分はMongoDBで実行できますが、pub-sub機能は提供していません。

結論として、1つのプロセスを超えて拡張する必要がある場合(つまり、数千を超える同時リクエストが予想される場合)、RedisStoreがソリューションです。

資力:

于 2012-05-22T09:06:25.280 に答える