diff --git a/js/libtextsecure.js b/js/libtextsecure.js index b79916e30b..47ecf38546 100644 --- a/js/libtextsecure.js +++ b/js/libtextsecure.js @@ -38456,22 +38456,19 @@ axolotlInternal.RecipientRecord = function() { reader.readAsArrayBuffer(blob); }; - var keepalive; if (opts.keepalive) { - keepalive = new KeepAlive(this, { + var keepalive = new KeepAlive(this, { path : opts.keepalive.path, disconnect : opts.keepalive.disconnect }); - this.resetKeepAliveTimer = keepalive.reset.bind(keepalive); + socket.addEventListener('connect', this.resetKeepAliveTimer); + socket.addEventListener('close', keepalive.stop.bind(keepalive)); } this.close = function(code, reason) { if (!code) { code = 3000; } socket.close(code, reason); - if (keepalive) { - keepalive.close(); - } }; }; @@ -38488,7 +38485,6 @@ axolotlInternal.RecipientRecord = function() { this.disconnect = true; } this.wsr = websocketResource; - this.reset(); } else { throw new TypeError('KeepAlive expected a WebSocketResource'); } @@ -38496,7 +38492,7 @@ axolotlInternal.RecipientRecord = function() { KeepAlive.prototype = { constructor: KeepAlive, - close: function() { + stop: function() { clearTimeout(this.keepAliveTimer); clearTimeout(this.disconnectTimer); }, diff --git a/libtextsecure/websocket-resources.js b/libtextsecure/websocket-resources.js index 8e624a823d..1fc269097e 100644 --- a/libtextsecure/websocket-resources.js +++ b/libtextsecure/websocket-resources.js @@ -129,22 +129,19 @@ reader.readAsArrayBuffer(blob); }; - var keepalive; if (opts.keepalive) { - keepalive = new KeepAlive(this, { + var keepalive = new KeepAlive(this, { path : opts.keepalive.path, disconnect : opts.keepalive.disconnect }); - this.resetKeepAliveTimer = keepalive.reset.bind(keepalive); + socket.addEventListener('connect', this.resetKeepAliveTimer); + socket.addEventListener('close', keepalive.stop.bind(keepalive)); } this.close = function(code, reason) { if (!code) { code = 3000; } socket.close(code, reason); - if (keepalive) { - keepalive.close(); - } }; }; @@ -161,7 +158,6 @@ this.disconnect = true; } this.wsr = websocketResource; - this.reset(); } else { throw new TypeError('KeepAlive expected a WebSocketResource'); } @@ -169,7 +165,7 @@ KeepAlive.prototype = { constructor: KeepAlive, - close: function() { + stop: function() { clearTimeout(this.keepAliveTimer); clearTimeout(this.disconnectTimer); },