/*! * socket.io-node * Copyright(c) 2011 LearnBoost * MIT Licensed */ /** * Module requirements. */ var HTTPPolling = require('./http-polling'); /** * Export the constructor. */ exports = module.exports = XHRPolling; /** * Ajax polling transport. * * @api public */ function XHRPolling (mng, data, req) { HTTPPolling.call(this, mng, data, req); }; /** * Inherits from Transport. */ XHRPolling.prototype.__proto__ = HTTPPolling.prototype; /** * Transport name * * @api public */ XHRPolling.prototype.name = 'xhr-polling'; /** * Frames data prior to write. * * @api private */ XHRPolling.prototype.doWrite = function (data) { HTTPPolling.prototype.doWrite.call(this); var origin = this.req.headers.origin , headers = { 'Content-Type': 'text/plain; charset=UTF-8' , 'Content-Length': data === undefined ? 0 : Buffer.byteLength(data) , 'Connection': 'Keep-Alive' }; if (origin) { // https://developer.mozilla.org/En/HTTP_Access_Control headers['Access-Control-Allow-Origin'] = origin; headers['Access-Control-Allow-Credentials'] = 'true'; } this.response.writeHead(200, headers); this.response.write(data); this.log.debug(this.name + ' writing', data); };