Skip to content

Instantly share code, notes, and snippets.

@hmahadik
Created June 1, 2020 18:16
Show Gist options
  • Save hmahadik/f78328fc7a60a28305f7dbbab6d11cd0 to your computer and use it in GitHub Desktop.
Save hmahadik/f78328fc7a60a28305f7dbbab6d11cd0 to your computer and use it in GitHub Desktop.
zeromq.js Router/Dealer Sample
var zmq = require('zeromq');
/* ZMQ Router */
var router_addr = 'tcp://0.0.0.0:5554'
var router_options = {
identity: "SourceFrame"
}
var router = zmq.socket('router', router_options);
router.bindSync(router_addr);
router.on('message', function(identity, msg) {
console.log(`Rcvd: [${identity}] '${msg}'`);
identity = identity.toString();
msg = msg.toString();
if (msg === "Connect") {
router.send([identity, "Accepted"]);
} else if (msg === "Request") {
router.send([identity, "Reply"]);
} else {
router.send([identity, "Invalid"]);
}
});
/* ZMQ Dealer */
var dealer_addr = 'tcp://127.0.0.1:5554';
let dealer_options = {
identity: "SinkFrame"
}
var dealer = zmq.socket('dealer', dealer_options);
dealer.connect(dealer_addr);
dealer.on('message', function(msg) {
msg = msg.toString();
console.log(`Rcvd: '${msg}'`);
if (msg === "Accepted") {
setInterval(()=>{dealer.send("Request")}, 100.0);
}
});
setTimeout(function() {
dealer.send("Connect");
}, 100.0);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment