mirror of
https://github.com/openstf/stf
synced 2025-10-04 02:09:32 +02:00
39 lines
795 B
JavaScript
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
|