1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // Generated by CoffeeScript 1.12.7
- (function() {
- var EventSourceReceiver, transport, utils,
- extend = 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; },
- hasProp = {}.hasOwnProperty;
- utils = require('./utils');
- transport = require('./transport');
- EventSourceReceiver = (function(superClass) {
- extend(EventSourceReceiver, superClass);
- function EventSourceReceiver() {
- return 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) {
- var headers, origin;
- if (!req.headers['origin'] || req.headers['origin'] === 'null') {
- origin = '*';
- } else {
- origin = req.headers['origin'];
- res.setHeader('Access-Control-Allow-Credentials', 'true');
- }
- res.setHeader('Content-Type', 'text/event-stream');
- res.setHeader('Access-Control-Allow-Origin', origin);
- res.setHeader('Vary', 'Origin');
- headers = req.headers['access-control-request-headers'];
- if (headers) {
- res.setHeader('Access-Control-Allow-Headers', headers);
- }
- res.writeHead(200);
- res.write('\r\n');
- transport.register(req, this, new EventSourceReceiver(req, res, this.options));
- return true;
- }
- };
- }).call(this);
|