diff options
Diffstat (limited to 'src/utils/signaling.js')
-rw-r--r-- | src/utils/signaling.js | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/utils/signaling.js b/src/utils/signaling.js index 6749f0c96..746fe7dbf 100644 --- a/src/utils/signaling.js +++ b/src/utils/signaling.js @@ -569,6 +569,7 @@ Signaling.Standalone.prototype.connect = function() { this.pendingMessages = [] this.connected = false this._forceReconnect = false + this._isRejoiningConversationWithNewSession = false this.socket = new WebSocket(this.url) window.signalingSocket = this.socket this.socket.onopen = function(event) { @@ -725,6 +726,8 @@ Signaling.Standalone.prototype.forceReconnect = function(newSession, flags) { this.leaveCall(this.currentCallToken, true) } + this._isRejoiningConversationWithNewSession = true + rejoinConversation(this.currentRoomToken) .then(response => { this.nextcloudSessionId = response.data.ocs.data.sessionId @@ -1123,6 +1126,10 @@ Signaling.Standalone.prototype.processRoomListEvent = function(data) { switch (data.event.type) { case 'disinvite': if (data.event.disinvite.roomid === this.currentRoomToken) { + if (this._isRejoiningConversationWithNewSession) { + console.debug('Rejoining conversation with new session, "disinvite" message ignored') + return + } console.error('User or session was removed from the conversation, redirecting') EventBus.$emit('duplicateSessionDetected') break |