exports = module.exports = function (handler) { var socket; assert.strictEqual(typeof handler, 'function'); socket = new zmq.socket('rep'); socket.on('message', function (message) { message = message && message.length > 0 ? JSON.parse(message) : {}; handler(message, function (error, result) { var response = []; if (error) { if (!(error instanceof Error)) { error = new Error(error); } error = JSON.stringify({ error: true, name: error.name, message: error.message }) } else { error = ''; } response.push(error); if (result) { response.push(JSON.stringify(result)); } socket.send(response); }); }); return socket; };
module.exports.socket = function() { var sock = zmq.socket.apply(zmq, arguments) ;['ZMQ_TCP_KEEPALIVE', 'ZMQ_TCP_KEEPALIVE_IDLE'].forEach(function(opt) { if (process.env[opt]) { try { sock.setsockopt(zmq[opt], Number(process.env[opt])) } catch (err) { log.warn('ZeroMQ library too old, no support for %s', opt) } } }) return sock }
handler(message, function (error, result) { var response = []; if (error) { if (!(error instanceof Error)) { error = new Error(error); } error = JSON.stringify({ error: true, name: error.name, message: error.message }) } else { error = ''; } response.push(error); if (result) { response.push(JSON.stringify(result)); } socket.send(response); });