32 lines
954 B
JavaScript
32 lines
954 B
JavaScript
const zmq = require('zeromq');
|
|
const address = 'tcp://127.0.0.1:12345';
|
|
const net = require('net');
|
|
const keyPair = zmq.curveKeyPair();
|
|
let router = new zmq.Router({
|
|
curveServer: false,
|
|
curvePublicKey: keyPair.publicKey,
|
|
curveSecretKey: keyPair.secretKey,
|
|
curveServerKey: '&WMz:eOrkJE@OO}5Lm?hcE:L:NZX9mGUGkFMCVyd'
|
|
});
|
|
const listen = async () => {
|
|
for await (const [sender, msg] of router) {
|
|
console.log("received: %s", Buffer.from(sender).toString('base64'), msg.toString());
|
|
setTimeout(() => {
|
|
let n = Math.ceil(Math.random() * 50) - 10;
|
|
router.send([sender, "hoi12345#"]);
|
|
}, 100);
|
|
}
|
|
}
|
|
const listenForEvents = async () => {
|
|
for await (event of router.events) {
|
|
console.log(`${event.type} ${JSON.stringify(event)}`)
|
|
}
|
|
}
|
|
const run = async () => {
|
|
await router.bind(address);
|
|
await Promise.all([
|
|
listen(),
|
|
listenForEvents()
|
|
]);
|
|
};
|
|
run(); |