2

ドキュメントを共同編集するための Node.js アプリケーションを構築しています。各ドキュメントには個別のプライベート チャットがあります (これは Socket.IO を使用して構築されます)。

現在、特定のドキュメントを現在編集しているメンバーのみに各チャットを制限する正しい方法はどれかわかりません。

私は別の部屋を使用する必要があります:

io.sockets.on('connection', function (socket) {
      socket.join(documentId);
      socket.broadcast.to(documentId).emit('new member');
    });
    

または、各ドキュメント チャットを新しい名前空間に分割する必要があります。

var chat = io
    .of('/chat/' + documentId)
    .on('connection', function (socket) {...}

または、私のニーズにより適した3番目の方法はありますか?

4

1 に答える 1

0

Socket.IO 名前空間は、サーバーとクライアント間の通信の経路を制御するためのものです。これにより、同じ接続を複数の目的で効果的に使用できます。

ルームと名前空間を使用する適切な方法を概説します。あなたのケースでは、これらを一緒に使用する必要があります。それはどちらか一方の状況ではありません。

最後に、組み込みのメッセージングのセグメンテーションがニーズを満たさないことがわかった場合は、いつでも独自のメッセージを作成し、必要に応じて簡単に発行できます。私はしばしばこのルートに行き着きます。

于 2012-12-09T08:03:31.463 に答える