const zmq = require('zeromq'); const fs = require('fs'); const address = 'tcp://127.0.0.1:12345'; let i = 1; const run = async () => { const fileName = "server.json"; let keyPair = null; if (fs.existsSync(fileName)) { keyPair = JSON.parse(fs.readFileSync("server.json")); } else { keyPair = zmq.curveKeyPair(); fs.writeFileSync("server.json", JSON.stringify(keyPair, null, 4)); } var dealer = new zmq.Dealer({ curveServer: true, curvePublicKey: keyPair.publicKey, curveSecretKey: keyPair.secretKey, }); dealer.connect(address); setInterval(() => { let msg = [[ "weatherinfo", i ]]; // + dealer.identity i += 1; console.log('send', msg); dealer.send(msg); }, 300); console.log("receiving..."); for await (const [msg] of dealer) { console.log("received: %s", msg.toString()) } } run();