Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Enable use of 'xhr' transport in Node.js

Normally, Socket.io 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
connections.

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
View
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 && socket.options.secure ? '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.