annotate node_modules/socket.io/lib/transports/xhr-polling.js @ 75:3a2845e3156e

added martin tweaks
author Rob Canning <rc@kiben.net>
date Tue, 01 Jul 2014 08:51:53 +0000
parents 333afcfd3f3a
children
rev   line source
rc-web@69 1
rc-web@69 2 /*!
rc-web@69 3 * socket.io-node
rc-web@69 4 * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
rc-web@69 5 * MIT Licensed
rc-web@69 6 */
rc-web@69 7
rc-web@69 8 /**
rc-web@69 9 * Module requirements.
rc-web@69 10 */
rc-web@69 11
rc-web@69 12 var HTTPPolling = require('./http-polling');
rc-web@69 13
rc-web@69 14 /**
rc-web@69 15 * Export the constructor.
rc-web@69 16 */
rc-web@69 17
rc-web@69 18 exports = module.exports = XHRPolling;
rc-web@69 19
rc-web@69 20 /**
rc-web@69 21 * Ajax polling transport.
rc-web@69 22 *
rc-web@69 23 * @api public
rc-web@69 24 */
rc-web@69 25
rc-web@69 26 function XHRPolling (mng, data, req) {
rc-web@69 27 HTTPPolling.call(this, mng, data, req);
rc-web@69 28 };
rc-web@69 29
rc-web@69 30 /**
rc-web@69 31 * Inherits from Transport.
rc-web@69 32 */
rc-web@69 33
rc-web@69 34 XHRPolling.prototype.__proto__ = HTTPPolling.prototype;
rc-web@69 35
rc-web@69 36 /**
rc-web@69 37 * Transport name
rc-web@69 38 *
rc-web@69 39 * @api public
rc-web@69 40 */
rc-web@69 41
rc-web@69 42 XHRPolling.prototype.name = 'xhr-polling';
rc-web@69 43
rc-web@69 44 /**
rc-web@69 45 * Frames data prior to write.
rc-web@69 46 *
rc-web@69 47 * @api private
rc-web@69 48 */
rc-web@69 49
rc-web@69 50 XHRPolling.prototype.doWrite = function (data) {
rc-web@69 51 HTTPPolling.prototype.doWrite.call(this);
rc-web@69 52
rc-web@69 53 var origin = this.req.headers.origin
rc-web@69 54 , headers = {
rc-web@69 55 'Content-Type': 'text/plain; charset=UTF-8'
rc-web@69 56 , 'Content-Length': data === undefined ? 0 : Buffer.byteLength(data)
rc-web@69 57 , 'Connection': 'Keep-Alive'
rc-web@69 58 };
rc-web@69 59
rc-web@69 60 if (origin) {
rc-web@69 61 // https://developer.mozilla.org/En/HTTP_Access_Control
rc-web@69 62 headers['Access-Control-Allow-Origin'] = origin;
rc-web@69 63 headers['Access-Control-Allow-Credentials'] = 'true';
rc-web@69 64 }
rc-web@69 65
rc-web@69 66 this.response.writeHead(200, headers);
rc-web@69 67 this.response.write(data);
rc-web@69 68 this.log.debug(this.name + ' writing', data);
rc-web@69 69 };