Force reconnect timeout on online event
This commit is contained in:
parent
5e3feec7a1
commit
c95d2a83f2
@ -86,6 +86,10 @@ const taskListeners = {
|
|||||||
|
|
||||||
userAgent: (task: any) => {
|
userAgent: (task: any) => {
|
||||||
networkerFactory.userAgent = task.payload;
|
networkerFactory.userAgent = task.payload;
|
||||||
|
},
|
||||||
|
|
||||||
|
online: () => {
|
||||||
|
networkerFactory.forceReconnectTimeout();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -188,6 +188,10 @@ export class ApiManagerProxy extends CryptoWorkerMethods {
|
|||||||
this.performTaskWorkerVoid('setLanguage', language);
|
this.performTaskWorkerVoid('setLanguage', language);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
window.addEventListener('online', (event) => {
|
||||||
|
this.postMessage({type: 'online'});
|
||||||
|
});
|
||||||
|
|
||||||
/// #if !MTPROTO_SW
|
/// #if !MTPROTO_SW
|
||||||
this.registerWorker();
|
this.registerWorker();
|
||||||
/// #endif
|
/// #endif
|
||||||
|
@ -374,6 +374,12 @@ export default class MTPNetworker {
|
|||||||
(this.transport as TcpObfuscated).destroy();
|
(this.transport as TcpObfuscated).destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public forceReconnectTimeout() {
|
||||||
|
if((this.transport as TcpObfuscated).reconnect) {
|
||||||
|
(this.transport as TcpObfuscated).reconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// private sendPingDelayDisconnect = () => {
|
// private sendPingDelayDisconnect = () => {
|
||||||
// if(this.pingPromise || true) return;
|
// if(this.pingPromise || true) return;
|
||||||
|
|
||||||
|
@ -66,6 +66,12 @@ export class NetworkerFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public forceReconnectTimeout() {
|
||||||
|
for(const networker of this.networkers) {
|
||||||
|
networker.forceReconnectTimeout();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const networkerFactory = new NetworkerFactory();
|
const networkerFactory = new NetworkerFactory();
|
||||||
|
@ -111,12 +111,7 @@ export default class TcpObfuscated implements MTTransport {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private onClose = () => {
|
private onClose = () => {
|
||||||
this.connected = false;
|
this.clear();
|
||||||
|
|
||||||
this.connection.removeEventListener('open', this.onOpen);
|
|
||||||
this.connection.removeEventListener('close', this.onClose);
|
|
||||||
this.connection.removeEventListener('message', this.onMessage);
|
|
||||||
this.connection = undefined;
|
|
||||||
|
|
||||||
let needTimeout: number;
|
let needTimeout: number;
|
||||||
if(this.autoReconnect) {
|
if(this.autoReconnect) {
|
||||||
@ -138,6 +133,17 @@ export default class TcpObfuscated implements MTTransport {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private clear() {
|
||||||
|
this.connected = false;
|
||||||
|
|
||||||
|
if(this.connection) {
|
||||||
|
this.connection.removeEventListener('open', this.onOpen);
|
||||||
|
this.connection.removeEventListener('close', this.onClose);
|
||||||
|
this.connection.removeEventListener('message', this.onMessage);
|
||||||
|
this.connection = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* invoke only when closed
|
* invoke only when closed
|
||||||
*/
|
*/
|
||||||
@ -147,7 +153,7 @@ export default class TcpObfuscated implements MTTransport {
|
|||||||
this.reconnectTimeout = undefined;
|
this.reconnectTimeout = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.connected) {
|
if(this.connection) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,6 +200,11 @@ export default class TcpObfuscated implements MTTransport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private connect() {
|
private connect() {
|
||||||
|
if(this.connection) {
|
||||||
|
this.close();
|
||||||
|
this.clear();
|
||||||
|
}
|
||||||
|
|
||||||
this.connection = new this.Connection(this.dcId, this.url, this.logSuffix);
|
this.connection = new this.Connection(this.dcId, this.url, this.logSuffix);
|
||||||
this.connection.addEventListener('open', this.onOpen);
|
this.connection.addEventListener('open', this.onOpen);
|
||||||
this.connection.addEventListener('close', this.onClose);
|
this.connection.addEventListener('close', this.onClose);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user