Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Enable use of 'xhr' transport in Node.js

Normally, chooses the "ideal" transport in Node.js:
WebSockets. This behavior can lead to unrealistic stress test results
because real-world loads will not be comprised of 100% WebSocket

The XHR transport itself is fully functional in Node. The transport
check currently fails only because `location` is not defined in the
global scope. By guarding the access of `global.location.protocol`, the
`XHR.check` method can correctly return `true` in Node.

Note that this will **not** change the default behavior in Node clients
to choose the "best available" transport. It only enables the use of a
fully-functional transport when requested.
  • Loading branch information...
commit d37e3ec8085b66dcb3b3d6c11bc73c5283756f04 1 parent 8e407f0
@jugglinmike authored
Showing with 1 addition and 1 deletion.
  1. +1 −1  lib/transports/xhr.js
2  lib/transports/xhr.js
@@ -190,7 +190,7 @@
var request = io.util.request(xdomain),
usesXDomReq = (global.XDomainRequest && request instanceof XDomainRequest),
socketProtocol = (socket && socket.options && ? 'https:' : 'http:'),
- isXProtocol = (socketProtocol != global.location.protocol);
+ isXProtocol = (global.location && socketProtocol != global.location.protocol);
if (request && !(usesXDomReq && isXProtocol)) {
return true;
Please sign in to comment.
Something went wrong with that request. Please try again.