pradosh nair
pradosh nair

Reputation: 945

NodeJS peer-peer communication on ZeroMQ

Had a couple of NodeJS applications which would talk on 'Zeromq' and give instructions to each other.

ZeroMQ examples were more pull/push and had not found much on peer to peer communication.

However, ZeroMQ does support peer to peer communication and examples were in python. So sharing the code which worked for me in NodeJS.

Upvotes: 0

Views: 596

Answers (1)

pradosh nair
pradosh nair

Reputation: 945

Solution to this problem is to connect socket using 'pair' option.

//Peer Client code
const socket = require(`zeromq`).socket(`pair`);
const address = process.env.ZMQ_PUB_ADDRESS || `tcp://127.0.0.1:3000`;
console.log(`Connecting to ${address}`);
socket.connect(address);
socket.on(`message`, function (msg) {
console.log(`Message received: ${msg}`);
});

const sendMessage2 = function () {
    const message = `Ping 2`;
    console.log(`Sending 2 '${message}'`);
    socket.send(message);
};
setInterval(sendMessage2, 30000);

//Peer Server Code
const socket = require(`zeromq`).socket(`pair`);
const address = process.env.ZMQ_BIND_ADDRESS || `tcp://127.0.0.1:3000`;  
console.log(`Listening at ${address}`);
socket.bindSync(address);

const sendMessage = function () {
    const message = `Ping 1`;
    console.log(`Sending 1 '${message}'`);
    socket.send(message);
};
setInterval(sendMessage, 2000);

socket.on(`message`, function (msg) {
    console.log(`Message received 2: ${msg}`);
});

Upvotes: 1

Related Questions