mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2025-12-24 04:09:49 +00:00
Fix reconnect bugs from previous commit
Forgot to bind the socket event handler, and the then() handler should come before the catch() handler or else it will execute every time the catch handler executes. // FREEBIE
This commit is contained in:
@@ -39383,28 +39383,31 @@ function generateKeys(count, progressCallback) {
|
||||
window.textsecure = window.textsecure || {};
|
||||
|
||||
function MessageReceiver(url, eventTarget) {
|
||||
this.url = url;
|
||||
if (eventTarget instanceof EventTarget) {
|
||||
this.target = eventTarget;
|
||||
} else {
|
||||
throw new TypeError('MessageReceiver expected an EventTarget');
|
||||
}
|
||||
this.connect(url);
|
||||
this.connect();
|
||||
}
|
||||
|
||||
MessageReceiver.prototype = {
|
||||
constructor: MessageReceiver,
|
||||
connect: function(url) {
|
||||
connect: function() {
|
||||
var eventTarget = this.target;
|
||||
// initialize the socket and start listening for messages
|
||||
this.socket = TextSecureServer.getMessageWebsocket(url);
|
||||
this.socket = TextSecureServer.getMessageWebsocket(this.url);
|
||||
this.socket.onclose = function(e) {
|
||||
// possible 403. Make a request to confirm
|
||||
TextSecureServer.getDevices(textsecure.storage.user.getNumber()).catch(function(e) {
|
||||
var ev = new Event('textsecure:error');
|
||||
ev.error = e;
|
||||
eventTarget.dispatchEvent(ev);
|
||||
}).then(this.connect.bind(this)); // No HTTP error? Reconnect.
|
||||
};
|
||||
TextSecureServer.getDevices(textsecure.storage.user.getNumber()).
|
||||
then(this.connect.bind(this)).
|
||||
catch(function(e) {
|
||||
var ev = new Event('textsecure:error');
|
||||
ev.error = e;
|
||||
eventTarget.dispatchEvent(ev);
|
||||
});
|
||||
}.bind(this);
|
||||
|
||||
this.wsr = new WebSocketResource(this.socket, {
|
||||
handleRequest: this.handleRequest.bind(this),
|
||||
|
||||
Reference in New Issue
Block a user