Skip to content

Commit 8e2dbdc

Browse files
committed
Reconnect timeout increase lineally
Minimum set at 15 seconds, each retry adds 30 seconds.
1 parent 18de340 commit 8e2dbdc

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

lib/client/websocket-tracker.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ var Tracker = require('./tracker')
1515
// boost, and saves browser resources.
1616
var socketPool = {}
1717

18-
var RECONNECT_VARIANCE = 30 * 1000
19-
var RECONNECT_MINIMUM = 5 * 1000
18+
var RECONNECT_MINIMUM = 15 * 1000
19+
var RECONNECT_RETRY = 30 * 1000
2020
var OFFER_TIMEOUT = 50 * 1000
2121

2222
inherits(WebSocketTracker, Tracker)
@@ -29,6 +29,7 @@ function WebSocketTracker (client, announceUrl, opts) {
2929
self.peers = {} // peers (offer id -> peer)
3030
self.socket = null
3131
self.reconnecting = false
32+
self.retries = 0
3233

3334
self._openSocket()
3435
}
@@ -118,6 +119,7 @@ WebSocketTracker.prototype._onSocketConnect = function () {
118119

119120
if (self.reconnecting) {
120121
self.reconnecting = false
122+
self.retries = 0
121123
self.announce(self.client._defaultAnnounceOpts())
122124
}
123125
}
@@ -233,10 +235,11 @@ WebSocketTracker.prototype._onSocketError = function (err) {
233235

234236
WebSocketTracker.prototype._startReconnectTimer = function () {
235237
var self = this
236-
var ms = Math.floor(Math.random() * RECONNECT_VARIANCE) + RECONNECT_MINIMUM
238+
var ms = RECONNECT_MINIMUM + (self.retries * RECONNECT_RETRY)
237239

238240
self.reconnecting = true
239241
var reconnectTimer = setTimeout(function () {
242+
self.retries++
240243
self._openSocket()
241244
}, ms)
242245
if (reconnectTimer.unref) reconnectTimer.unref()

0 commit comments

Comments
 (0)