You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							53 lines
						
					
					
						
							1.8 KiB
						
					
					
				// 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);
 | 
						|
 |