var zmq = require('zmq') var logger = require('../util/logger') module.exports = function(options) { var log = logger.createLogger('coordinator') if (options.name) { logger.setGlobalIdentifier(options.name) } // App side var appDealer = zmq.socket('dealer') options.endpoints.appDealer.forEach(function(endpoint) { log.info('App dealer connected to %s', endpoint) appDealer.connect(endpoint) }) appDealer.on('message', function(channel, id, cmd) { devDealer.send([].slice.call(arguments)) }) // Device side var devDealer = zmq.socket('dealer') options.endpoints.devDealer.forEach(function(endpoint) { log.info('Device dealer connected to %s', endpoint) devDealer.connect(endpoint) }) devDealer.on('message', function() { appDealer.send([].slice.call(arguments)) }) }