首页 文章

ZMQ发布/订阅

提问于
浏览
1

我无法确定如何订阅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 回答

  • 2

    sub.subscribe('topic') 为您的订阅者套接字添加了一个过滤器,以便您只接收以字符串 topic 开头的消息 . 您可以通过多次调用来添加多个过滤器 . sub.subscribe('') 删除任何现有过滤器,以便您的订阅者获取发布者发送的所有消息 .

    在使用 sub.subscribe('pub') 的代码中,将在订阅方产生消息 .

    zeromq.node中的pub/sub example GitHub是一个了解订阅如何工作的好地方 .

相关问题