我在我的项目的不同服务器上运行相同的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次,其他实例永远不会收到消息。
第一次尝试后有没有办法防止?
我试图取消订阅发布商并在一段时间后重新订阅但是,我不认为这是一个很好的做法而且它也没有...