ZMQ pub/sub 订阅
ZMQ pub/sub subscribe
关于 ZMQ 的 pub/sub 功能,我无法弄清楚如何订阅一个特别的 "channel"。
这里是发布者:
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?
sub.subscribe('topic')
向您的订阅者套接字添加一个过滤器,以便您只接收以字符串 topic
开头的消息。您可以通过多次调用来添加多个过滤器。 sub.subscribe('')
删除所有现有过滤器,以便您的订阅者获得发布者发送的所有消息。
在您的代码中使用 sub.subscribe('pub')
会在订阅方产生消息。
zeromq.node GitHub 中的 pub/sub example 是了解订阅工作原理的好地方。
关于 ZMQ 的 pub/sub 功能,我无法弄清楚如何订阅一个特别的 "channel"。
这里是发布者:
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?
sub.subscribe('topic')
向您的订阅者套接字添加一个过滤器,以便您只接收以字符串 topic
开头的消息。您可以通过多次调用来添加多个过滤器。 sub.subscribe('')
删除所有现有过滤器,以便您的订阅者获得发布者发送的所有消息。
在您的代码中使用 sub.subscribe('pub')
会在订阅方产生消息。
zeromq.node GitHub 中的 pub/sub example 是了解订阅工作原理的好地方。