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.
|
|
/** * Module dependencies */
var XMLHttpRequest = require('xmlhttprequest-ssl'); var XHR = require('./polling-xhr'); var JSONP = require('./polling-jsonp'); var websocket = require('./websocket');
/** * Export transports. */
exports.polling = polling; exports.websocket = websocket;
/** * Polling transport polymorphic constructor. * Decides on xhr vs jsonp based on feature detection. * * @api private */
function polling (opts) { var xhr; var xd = false; var xs = false; var jsonp = false !== opts.jsonp;
if (global.location) { var isSSL = 'https:' === location.protocol; var port = location.port;
// some user agents have empty `location.port`
if (!port) { port = isSSL ? 443 : 80; }
xd = opts.hostname !== location.hostname || port !== opts.port; xs = opts.secure !== isSSL; }
opts.xdomain = xd; opts.xscheme = xs; xhr = new XMLHttpRequest(opts);
if ('open' in xhr && !opts.forceJSONP) { return new XHR(opts); } else { if (!jsonp) throw new Error('JSONP disabled'); return new JSONP(opts); } }
|