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';
|
||||
|
||||
const ConnectionEvents = JitsiMeetJS.events.connection;
|
||||
const ConnectionErrors = JitsiMeetJS.errors.connection;
|
||||
|
||||
const ConferenceEvents = JitsiMeetJS.events.conference;
|
||||
|
@ -511,6 +512,7 @@ export default {
|
|||
}).then(([tracks, con]) => {
|
||||
console.log('initialized with %s local tracks', tracks.length);
|
||||
APP.connection = connection = con;
|
||||
this._bindConnectionFailedHandler(con);
|
||||
this._createRoom(tracks);
|
||||
this.isDesktopSharingEnabled =
|
||||
JitsiMeetJS.isDesktopSharingEnabled();
|
||||
|
@ -547,6 +549,28 @@ export default {
|
|||
isLocalId (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.
|
||||
* @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 Settings from "./../settings/Settings";
|
||||
import RingOverlay from "./ring_overlay/RingOverlay";
|
||||
import RandomUtil from "../util/RandomUtil";
|
||||
import UIErrors from './UIErrors';
|
||||
|
||||
var EventEmitter = require("events");
|
||||
|
@ -1088,7 +1089,8 @@ UI.notifyFocusDisconnected = function (focus, retrySec) {
|
|||
* the page should be reloaded.
|
||||
*/
|
||||
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