NodeJS одноранговая связь на ZeroMQ - PullRequest
0 голосов
/ 14 июня 2019

Было несколько приложений NodeJS, которые говорили бы на «Zeromq» и давали инструкции друг другу.

Примеры ZeroMQ были более «тянуть-толкать» и почти ничего не нашли при одноранговой связи.

Однако ZeroMQ поддерживает одноранговую связь, и примеры были на python. Итак, делюсь кодом, который работал для меня в NodeJS.

1 Ответ

0 голосов
/ 14 июня 2019

Решением этой проблемы является подключение сокета с помощью опции «pair».

//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}`);
});
...