Improve reconnect logic
Always test connectivity with an http request after a websocket closes, regardless of what code/error it closed with. If that request succeeds, automatically reconnect the socket. // FREEBIE
This commit is contained in:
parent
756875f235
commit
16de5aa3d3
2 changed files with 12 additions and 16 deletions
|
@ -39398,14 +39398,12 @@ function generateKeys(count, progressCallback) {
|
||||||
// initialize the socket and start listening for messages
|
// initialize the socket and start listening for messages
|
||||||
this.socket = TextSecureServer.getMessageWebsocket(url);
|
this.socket = TextSecureServer.getMessageWebsocket(url);
|
||||||
this.socket.onclose = function(e) {
|
this.socket.onclose = function(e) {
|
||||||
if (e.code === 1006) {
|
// possible 403. Make a request to confirm
|
||||||
// possible 403. Make an request to confirm
|
|
||||||
TextSecureServer.getDevices(textsecure.storage.user.getNumber()).catch(function(e) {
|
TextSecureServer.getDevices(textsecure.storage.user.getNumber()).catch(function(e) {
|
||||||
var ev = new Event('textsecure:error');
|
var ev = new Event('textsecure:error');
|
||||||
ev.error = e;
|
ev.error = e;
|
||||||
eventTarget.dispatchEvent(ev);
|
eventTarget.dispatchEvent(ev);
|
||||||
});
|
}).then(this.connect.bind(this)); // No HTTP error? Reconnect.
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.wsr = new WebSocketResource(this.socket, {
|
this.wsr = new WebSocketResource(this.socket, {
|
||||||
|
|
|
@ -22,14 +22,12 @@
|
||||||
// initialize the socket and start listening for messages
|
// initialize the socket and start listening for messages
|
||||||
this.socket = TextSecureServer.getMessageWebsocket(url);
|
this.socket = TextSecureServer.getMessageWebsocket(url);
|
||||||
this.socket.onclose = function(e) {
|
this.socket.onclose = function(e) {
|
||||||
if (e.code === 1006) {
|
// possible 403. Make a request to confirm
|
||||||
// possible 403. Make an request to confirm
|
|
||||||
TextSecureServer.getDevices(textsecure.storage.user.getNumber()).catch(function(e) {
|
TextSecureServer.getDevices(textsecure.storage.user.getNumber()).catch(function(e) {
|
||||||
var ev = new Event('textsecure:error');
|
var ev = new Event('textsecure:error');
|
||||||
ev.error = e;
|
ev.error = e;
|
||||||
eventTarget.dispatchEvent(ev);
|
eventTarget.dispatchEvent(ev);
|
||||||
});
|
}).then(this.connect.bind(this)); // No HTTP error? Reconnect.
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.wsr = new WebSocketResource(this.socket, {
|
this.wsr = new WebSocketResource(this.socket, {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue