openvidu-browser: fix unexpected undefined exception on reconnected callback

pull/546/head
pabloFuente 2020-09-29 11:59:30 +02:00
parent a852a826fa
commit 12f215ddd9
2 changed files with 23 additions and 19 deletions

View File

@ -337,8 +337,8 @@ export class OpenVidu {
const family = platform.os!!.family; const family = platform.os!!.family;
const userAgent = !!platform.ua ? platform.ua : navigator.userAgent; const userAgent = !!platform.ua ? platform.ua : navigator.userAgent;
if(this.isIPhoneOrIPad(userAgent)) { if (this.isIPhoneOrIPad(userAgent)) {
if(this.isIOSWithSafari(userAgent) || platform['isIonicIos']){ if (this.isIOSWithSafari(userAgent) || platform['isIonicIos']) {
return 1; return 1;
} }
return 0; return 0;
@ -1025,6 +1025,7 @@ export class OpenVidu {
private reconnectedCallback(): void { private reconnectedCallback(): void {
logger.warn('Websocket reconnected'); logger.warn('Websocket reconnected');
if (this.isRoomAvailable()) { if (this.isRoomAvailable()) {
if (!!this.session.connection) {
this.sendRequest('connect', { sessionId: this.session.connection.rpcSessionId }, (error, response) => { this.sendRequest('connect', { sessionId: this.session.connection.rpcSessionId }, (error, response) => {
if (!!error) { if (!!error) {
logger.error(error); logger.error(error);
@ -1036,6 +1037,9 @@ export class OpenVidu {
this.session.onRecoveredConnection(); this.session.onRecoveredConnection();
} }
}); });
} else {
logger.warn('There was no previous connection when running reconnection callback');
}
} else { } else {
alert('Connection error. Please reload page.'); alert('Connection error. Please reload page.');
} }
@ -1064,7 +1068,7 @@ export class OpenVidu {
return isIPad || isIPhone; return isIPad || isIPhone;
} }
private isIOSWithSafari(userAgent): boolean{ private isIOSWithSafari(userAgent): boolean {
return /\b(\w*Apple\w*)\b/.test(navigator.vendor) && /\b(\w*Safari\w*)\b/.test(userAgent) return /\b(\w*Apple\w*)\b/.test(navigator.vendor) && /\b(\w*Safari\w*)\b/.test(userAgent)
&& !/\b(\w*CriOS\w*)\b/.test(userAgent) && !/\b(\w*FxiOS\w*)\b/.test(userAgent); && !/\b(\w*CriOS\w*)\b/.test(userAgent) && !/\b(\w*FxiOS\w*)\b/.test(userAgent);
} }

View File

@ -987,7 +987,7 @@ export class Session extends EventDispatcher {
*/ */
onLostConnection(reason: string): void { onLostConnection(reason: string): void {
logger.warn('Lost connection in Session ' + this.sessionId); logger.warn('Lost connection in Session ' + this.sessionId);
if (!!this.sessionId && !this.connection.disposed) { if (!!this.sessionId && !!this.connection && !this.connection.disposed) {
this.leave(true, reason); this.leave(true, reason);
} }
} }