Merge pull request #1064 from jitsi/5xx_reloads
Page reloads on BOSH HTTP errors
This commit is contained in:
commit
68b587b110
|
@ -18,6 +18,7 @@ import {reportError} from './modules/util/helpers';
|
||||||
|
|
||||||
import UIUtil from './modules/UI/util/UIUtil';
|
import UIUtil from './modules/UI/util/UIUtil';
|
||||||
|
|
||||||
|
const ConnectionEvents = JitsiMeetJS.events.connection;
|
||||||
const ConnectionErrors = JitsiMeetJS.errors.connection;
|
const ConnectionErrors = JitsiMeetJS.errors.connection;
|
||||||
|
|
||||||
const ConferenceEvents = JitsiMeetJS.events.conference;
|
const ConferenceEvents = JitsiMeetJS.events.conference;
|
||||||
|
@ -511,6 +512,7 @@ export default {
|
||||||
}).then(([tracks, con]) => {
|
}).then(([tracks, con]) => {
|
||||||
console.log('initialized with %s local tracks', tracks.length);
|
console.log('initialized with %s local tracks', tracks.length);
|
||||||
APP.connection = connection = con;
|
APP.connection = connection = con;
|
||||||
|
this._bindConnectionFailedHandler(con);
|
||||||
this._createRoom(tracks);
|
this._createRoom(tracks);
|
||||||
this.isDesktopSharingEnabled =
|
this.isDesktopSharingEnabled =
|
||||||
JitsiMeetJS.isDesktopSharingEnabled();
|
JitsiMeetJS.isDesktopSharingEnabled();
|
||||||
|
@ -547,6 +549,28 @@ export default {
|
||||||
isLocalId (id) {
|
isLocalId (id) {
|
||||||
return this.getMyUserId() === id;
|
return this.getMyUserId() === id;
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Binds a handler that will handle the case when the connection is dropped
|
||||||
|
* in the middle of the conference.
|
||||||
|
* @param {JitsiConnection} connection the connection to which the handler
|
||||||
|
* will be bound to.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
_bindConnectionFailedHandler (connection) {
|
||||||
|
const handler = function (error, errMsg) {
|
||||||
|
if (ConnectionErrors.OTHER_ERROR === error) {
|
||||||
|
// - item-not-found
|
||||||
|
// - connection dropped(closed by Strophe unexpectedly
|
||||||
|
// possible due too many transport errors)
|
||||||
|
console.error("XMPP connection error: " + errMsg);
|
||||||
|
APP.UI.showPageReloadOverlay();
|
||||||
|
connection.removeEventListener(
|
||||||
|
ConnectionEvents.CONNECTION_FAILED, handler);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
connection.addEventListener(
|
||||||
|
ConnectionEvents.CONNECTION_FAILED, handler);
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* Simulates toolbar button click for audio mute. Used by shortcuts and API.
|
* Simulates toolbar button click for audio mute. Used by shortcuts and API.
|
||||||
* @param mute true for mute and false for unmute.
|
* @param mute true for mute and false for unmute.
|
||||||
|
|
|
@ -21,6 +21,7 @@ import SettingsMenu from "./side_pannels/settings/SettingsMenu";
|
||||||
import Profile from "./side_pannels/profile/Profile";
|
import Profile from "./side_pannels/profile/Profile";
|
||||||
import Settings from "./../settings/Settings";
|
import Settings from "./../settings/Settings";
|
||||||
import RingOverlay from "./ring_overlay/RingOverlay";
|
import RingOverlay from "./ring_overlay/RingOverlay";
|
||||||
|
import RandomUtil from "../util/RandomUtil";
|
||||||
import UIErrors from './UIErrors';
|
import UIErrors from './UIErrors';
|
||||||
|
|
||||||
var EventEmitter = require("events");
|
var EventEmitter = require("events");
|
||||||
|
@ -1088,7 +1089,8 @@ UI.notifyFocusDisconnected = function (focus, retrySec) {
|
||||||
* the page should be reloaded.
|
* the page should be reloaded.
|
||||||
*/
|
*/
|
||||||
UI.showPageReloadOverlay = function () {
|
UI.showPageReloadOverlay = function () {
|
||||||
PageReloadOverlay.show(15 /* will reload in 15 seconds */);
|
// Reload the page after 10 - 30 seconds
|
||||||
|
PageReloadOverlay.show(10 + RandomUtil.randomInt(0, 20));
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue