3

我正在使用 redis 进行通知,它的工作原理是这样的 -

当 user1 有通知要与他的朋友分享时,我将该消息发布到用户每个朋友的所有频道。使用 socket.io 和 node,消息被推送给每个朋友,因为订阅部分是使用 node 处理的。

这工作正常,直到连接丢失。此时,在重新连接时,我发现朋友的频道发生了 2 次发布而不是 1 次发布,尽管像上一个案例一样只发生了 1 次活动。

他们的任何配置是否可以在重新连接时避免重复发布?

还发现,在重新连接时,它也在尝试使用辅助传输进行连接。这可能是问题吗?

4

1 回答 1

1

我想在每个连接上

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

你订阅了redis

redisClient.subscribe('activity:*');

不需要每次都连接redis。您应该在套接字连接之前连接到 redis。

于 2014-07-21T11:01:33.503 回答