我无法确定如何订阅ZMQ关于其pub / sub功能的特别“ Channels ” .
这是出版商:
var zmq = require('zmq');
var pub = zmq.socket('pub');
pub.bindSync('tcp://127.0.0.1:5555');
setInterval(function(){
pub.send('pub msg');
},500);
这是订户:
var sub = zmq.socket('sub');
sub.connect('tcp://127.0.0.1:5555');
sub.subscribe(''); //herein lies the question
sub.on('message',function(msg){
console.log('Received msg:',msg);
}
这样可以正常工作,但问题是如果我将sub.subscribe的参数更改为除空字符串('')以外的任何内容,则订阅者不会收到来自发布者的任何消息 .
如何正确配置带有ZMQ的pub / sub?
1 回答
sub.subscribe('topic')
为您的订阅者套接字添加了一个过滤器,以便您只接收以字符串topic
开头的消息 . 您可以通过多次调用来添加多个过滤器 .sub.subscribe('')
删除任何现有过滤器,以便您的订阅者获取发布者发送的所有消息 .在使用
sub.subscribe('pub')
的代码中,将在订阅方产生消息 .zeromq.node中的pub/sub example GitHub是一个了解订阅如何工作的好地方 .