diff --git a/lib/main.js b/lib/main.js index 01bb894c..678f5aca 100644 --- a/lib/main.js +++ b/lib/main.js @@ -49,6 +49,7 @@ function SockJS(url, protocols, options) { } this._transportsWhitelist = options.transports; this._transportOptions = options.transportOptions || {}; + this._transportMinTimeout = options.transportMinTimeout || null; var sessionId = options.sessionId || 8; if (typeof sessionId === 'function') { @@ -209,7 +210,7 @@ SockJS.prototype._connect = function() { } // calculate timeout based on RTO and round trips. Default to 5s - var timeoutMs = (this._rto * Transport.roundTrips) || 5000; + var timeoutMs = ((this._rto > this._transportMinTimeout ? this._rto : this._transportMinTimeout) * Transport.roundTrips) || 5000; this._transportTimeoutId = setTimeout(this._transportTimeout.bind(this), timeoutMs); debug('using timeout', timeoutMs);