【发布时间】:2015-04-27 23:15:05
【问题描述】:
我无法弄清楚如何使用 ZMQ 订阅特定“频道”的发布/订阅功能。
这里是发布者:
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 正确配置发布/订阅?
【问题讨论】:
-
你的意思是即使你做了sub.subscribe('pub'),你什么也得不到?
-
pub 和 sub 不在同一个文件或程序中...
-
这实际上并不相关。我的意思是,因为您的发布者发送以字符串“pub”开头的消息,订阅“pub”应该会在订阅者端产生消息。 subscribe 所做的只是在订阅者端设置一个过滤器。
标签: node.js sockets tcp zeromq