m2node
Version:
mongrel2 handler
28 lines (22 loc) • 805 B
text/coffeescript
events = require 'events'
zeromq = require 'zmq'
{MongrelRequest} = require './mongrel_request'
class Handler extends events.EventEmitter
constructor: (options) ->
= zeromq.createSocket('pull')
.connect(options.recv_spec)
.on 'message', (message) =>
'request', new MongrelRequest(message)
= zeromq.createSocket('pub')
.connect(options.send_spec)
sendResponse: (request, response) ->
header = [
request.uuid, ' ',
request.connectionId.length, ':', request.connectionId,
', '
].join('')
outBuffer = new Buffer(header.length + response.length)
outBuffer.write(header, 'ascii')
response.copy(outBuffer, header.length)
.send(outBuffer)
exports.Handler = Handler