diff --git a/lib/roles/device/support/router.js b/lib/roles/device/support/router.js index 2557e35b..83361929 100644 --- a/lib/roles/device/support/router.js +++ b/lib/roles/device/support/router.js @@ -10,7 +10,8 @@ module.exports = syrup.serial() sub.on('message', router.handler()) - router.on('message', function(channel) { + // Special case, we're hooking into a message that's not actually routed. + router.on({$code: 'message'}, function(channel) { channels.keepalive(channel) }) diff --git a/lib/wire/router.js b/lib/wire/router.js index b0f68d2c..926adfe7 100644 --- a/lib/wire/router.js +++ b/lib/wire/router.js @@ -3,6 +3,7 @@ var util = require('util') var wire = require('./') var log = require('../util/logger').createLogger('wire:router') +var on = EventEmitter.prototype.on function Router() { if (!(this instanceof Router)) { @@ -15,7 +16,7 @@ function Router() { util.inherits(Router, EventEmitter) Router.prototype.on = function(message, handler) { - return EventEmitter.prototype.on.call(this, message.$code, handler) + return on.call(this, message.$code, handler) } Router.prototype.removeListener = function(message, handler) {