nodejs + redis - 阻止实例处理自己发送的相同消息

时间:2016-08-20 13:11:54

标签: node.js redis

我在我的项目的不同服务器上运行相同的socket.io实例。

我的目标是阻止发布商实例处理自己的消息。

var publisherId = 'EdswFd';

subscriber.on('message', function (channel, message) {
    if(channel == 'new process'){
        if(message == publisherId) {
            //prevent processing message
            return console.log('same instance');
        }
        else
        {
            //process message
        }
    }
});

publisher.publish('new process', publisherId);

通过这个,我试图在下面实现:

             |     |
             |     | -do-not-process-> socket1
socket1 ---> |redis|
             |     | -process-message-> socket2
             |     |

问题是,发布者实例尝试立即处理自己的消息3次,其他实例永远不会收到消息。

第一次尝试后有没有办法防止?

我试图取消订阅发布商并在一段时间后重新订阅但是,我不认为这是一个很好的做法而且它也没有...

0 个答案:

没有答案