1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 02:09:32 +02:00
OpenSTF/lib/wire/router.js

39 lines
795 B
JavaScript

var events = require('events')
var util = require('util')
var wire = require('./')
var log = require('../util/logger').createLogger('wire:router')
function Router() {
if (!(this instanceof Router)) {
return new Router()
}
events.EventEmitter.call(this)
}
util.inherits(Router, events.EventEmitter)
Router.prototype.handler = function() {
return function(channel, data) {
var wrapper = wire.Envelope.decode(data)
, type = wire.ReverseMessageType[wrapper.type]
if (type) {
this.emit(
wrapper.type
, channel
, wire[type].decode(wrapper.message)
, data
)
}
else {
log.warn(
'Unknown message type "%d", perhaps we need an update?'
, wrapper.type
)
}
}.bind(this)
}
module.exports = Router