3

通知にredisを使用していますが、次のように機能します-

user1 が友人と共有する通知を持っている場合、そのメッセージをユーザーの各友人のすべてのチャネルに公開します。socket.io と node を使用して、サブスクリプション部分が node を使用して処理されるように、メッセージは各フレンドにプッシュされます。

これは、接続が失われるまで正常に機能します。この時点で、再接続すると、最後のケースのようにアクティビティが 1 つしか発生していないにもかかわらず、友人のチャンネルで 1 つではなく 2 つのパブリッシュが発生していることがわかります..

再接続時に重複公開を回避できる構成はありますか?

また、再接続時に、セカンダリトランスポートも使用して接続しようとしています..これは問題になる可能性がありますか?

4

1 に答える 1

1

接続ごとに

io.sockets.on('connection', function(client){
//...
});

あなたはredisにサブスクライブします

redisClient.subscribe('activity:*');

毎回redisに接続する必要はありません。ソケット接続の直前に redis に接続する必要があります。

于 2014-07-21T11:01:33.503 に答える