Synchronized publisher in Node.js
var zmq = require('zmq')
var publisher = zmq.socket('pub')
var server = zmq.socket('rep')
var pending = 0
server.on('message', function(request) {
pending++
console.log(request.toString(), pending)
server.send('OK')
if (pending > 0)
publisher.send(pending + ' subscribers connected.')
})
server.bind('tcp://*:8888', function(err) {
if(err)
console.log(err)
else
console.log('Listening on 8888…')
})
publisher.bind('tcp://*:8688', function(err) {
if(err)
console.log(err)
else
console.log('Listening on 8688…')
})
process.on('SIGINT', function() {
publisher.close()
server.close()
})