2017-02-06 10 views
0

フォーク、 セッションベースのアレイを作成する方法はありますか、またはmemorydbなど、すべてのクライアントで共有できるデータプールを作成する方法はありますか。 基本的には、ログインしたすべてのユーザーのトラックを保持するsocket.ioベースのチャットアプリケーションを作成する必要があります。ログインしたユーザーの配列をすべてのクライアントまたは新しいクライアントに参加させる。 あなたのお手伝いをよろしくお願いします。接続されたすべてのクライアントの高速、共有データ

答えて

1

あなたはMongoDBのか、RedisのかMySQLで文書を作成することができ、クライアントにオンラインユーザのリストを送信するためにあなたのソケット-IO

とsocket.io-のRedisまたはソケット-IO-MongoDBのアダプタを設定する必要があります。場合には、これまでsocket.on(「接続」)はtriggerd

var userId = socket.request.user.id; 
var socketId = socket.id; 

を使用して、そこからユーザIDを取得し、データベースに保存されます。

ソケットが切断されるたびにデータベースから削除されます。

クライアントがログインしてオンラインユーザに要求すると、データベースからフェッチし、各ソケットでio.sockets.connected [socketId]を実行して、ソケットがまだ接続されているかどうかを確認し、リストをクライアントに返します。

https://github.com/socketio/socket.io-redis https://www.npmjs.com/package/socket.io-mongodb

関連する問題