41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
(function() {
|
|
var EventSourceReceiver, transport, utils,
|
|
__hasProp = Object.prototype.hasOwnProperty,
|
|
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; };
|
|
|
|
utils = require('./utils');
|
|
|
|
transport = require('./transport');
|
|
|
|
EventSourceReceiver = (function(_super) {
|
|
|
|
__extends(EventSourceReceiver, _super);
|
|
|
|
function EventSourceReceiver() {
|
|
EventSourceReceiver.__super__.constructor.apply(this, arguments);
|
|
}
|
|
|
|
EventSourceReceiver.prototype.protocol = "eventsource";
|
|
|
|
EventSourceReceiver.prototype.doSendFrame = function(payload) {
|
|
var data;
|
|
data = ['data: ', utils.escape_selected(payload, '\r\n\x00'), '\r\n\r\n'];
|
|
return EventSourceReceiver.__super__.doSendFrame.call(this, data.join(''));
|
|
};
|
|
|
|
return EventSourceReceiver;
|
|
|
|
})(transport.ResponseReceiver);
|
|
|
|
exports.app = {
|
|
eventsource: function(req, res) {
|
|
res.setHeader('Content-Type', 'text/event-stream; charset=UTF-8');
|
|
res.writeHead(200);
|
|
res.write('\r\n');
|
|
transport.register(req, this, new EventSourceReceiver(req, res, this.options));
|
|
return true;
|
|
}
|
|
};
|
|
|
|
}).call(this);
|