【问题标题】:zmq nodejs module push pull not working properly.Subscriber not receiving messages properlyzmq nodejs模块推拉无法正常工作。订阅者无法正确接收消息
【发布时间】:2014-10-17 01:37:24
【问题描述】:

我在 nodejs 中有一个 zmq 发布者和订阅者代码。我的问题是有时我的订阅者没有收到任何消息。下面是我的代码

出版商:

var zmq = require('zmq'),

socket = zmq.socket('push'),
socket.bind(publisherUrl, function (err) {
if (err) {
    console.log(err);
}
else {
    console.log("Listening on ..." + publisherUrl)
}

});

function PublishEvent(msg) {
setTimeout(function () {
    socket.send(msg);
}, 100);

}

订阅者:

var zmq = require('zmq'),
events = require('events'),
subscriber = zmq.socket('pull');

subscriber.on("message", function (reply) {
if (reply.toString() !== '{}'){
console.log("info", 'Received message:' + reply.toString());
}
})
subscriber.connect(publisherUrl)

它有时工作正常,但在某些情况下无法接收消息。我被困在这里,任何有关这方面的帮助都会很有帮助。

【问题讨论】:

    标签: node.js sockets zeromq


    【解决方案1】:

    您的发布商应如下所示:

    var zmq = require('zmq')
    var publisher = zmq.socket('pub')
    
    publisher.bind('tcp://*:8688', function(err) {
        if(err)
            console.log(err)
        else
            console.log("Listening on 8688...")
    })
    
    for (var i=1 ; i<10 ; i++)
        setTimeout(function() {
            console.log('sent');
            publisher.send("Hello there!")
    }, 1000 * i)
    
    process.on('SIGINT', function() {
        publisher.close()
        console.log('\nClosed')
    })
    

    您的订阅者应如下所示:

    var zmq = require('zmq')
    var subscriber = zmq.socket('sub')
    
    subscriber.on("message", function(reply) {
        console.log('Received message: ', reply.toString());
    })
    
    subscriber.connect("tcp://localhost:8688")
    subscriber.subscribe("")
    
    process.on('SIGINT', function() {
        subscriber.close()
        console.log('\nClosed')
    })
    

    来源:https://github.com/imatix/zguide/tree/master/examples/Node.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-26
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 2016-10-06
      • 1970-01-01
      相关资源
      最近更新 更多