Ver código fonte

fix(IceFailedHandling) force client reload when ICE fails locally.

tags/v0.0.2
Jaya Allamsetty 3 anos atrás
pai
commit
cee62a61b4

+ 0
- 1
JitsiConference.js Ver arquivo

@@ -2788,7 +2788,6 @@ JitsiConference.prototype.isConnectionInterrupted = function() {
2788 2788
  */
2789 2789
 JitsiConference.prototype._onConferenceRestarted = function(session) {
2790 2790
     if (!session.isP2P && this.options.config.enableForcedReload) {
2791
-        this.restartInProgress = true;
2792 2791
         this.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, JitsiConferenceErrors.CONFERENCE_RESTARTED);
2793 2792
     }
2794 2793
 };

+ 6
- 6
modules/connectivity/IceFailedHandling.js Ver arquivo

@@ -37,19 +37,19 @@ export default class IceFailedHandling {
37 37
         const explicitlyDisabled = typeof enableIceRestart !== 'undefined' && !enableIceRestart;
38 38
         const supportsRestartByTerminate = this._conference.room.supportsRestartByTerminate();
39 39
         const useTerminateForRestart = supportsRestartByTerminate && !enableIceRestart;
40
-        const reloadClient = this._conference.restartInProgress && enableForcedReload;
41 40
 
42 41
         logger.info('ICE failed,'
43 42
             + ` enableForcedReload: ${enableForcedReload},`
44 43
             + ` enableIceRestart: ${enableIceRestart},`
45
-            + ` restartInProgress: ${this._conference.restartInProgress},`
46 44
             + ` supports restart by terminate: ${supportsRestartByTerminate}`);
47 45
 
48
-        if (explicitlyDisabled || (!enableIceRestart && !supportsRestartByTerminate) || reloadClient) {
46
+        if (explicitlyDisabled || (!enableIceRestart && !supportsRestartByTerminate) || enableForcedReload) {
49 47
             logger.info('ICE failed, but ICE restarts are disabled');
50
-            this._conference.eventEmitter.emit(
51
-                JitsiConferenceEvents.CONFERENCE_FAILED,
52
-                JitsiConferenceErrors.ICE_FAILED);
48
+            const reason = enableForcedReload
49
+                ? JitsiConferenceErrors.CONFERENCE_RESTARTED
50
+                : JitsiConferenceErrors.ICE_FAILED;
51
+
52
+            this._conference.eventEmitter.emit(JitsiConferenceEvents.CONFERENCE_FAILED, reason);
53 53
 
54 54
             return;
55 55
         }

+ 20
- 0
modules/connectivity/IceFailedHandling.spec.js Ver arquivo

@@ -147,4 +147,24 @@ describe('IceFailedHandling', () => {
147 147
                 });
148 148
         });
149 149
     });
150
+    describe('when forced reloads are enabled', () => {
151
+        beforeEach(() => {
152
+            mockConference.options.config.enableIceRestart = undefined;
153
+            mockConference.options.config.enableForcedReload = true;
154
+
155
+            mockConference.room = {
156
+                supportsRestartByTerminate: () => true
157
+            };
158
+        });
159
+
160
+        it('emits conference restarted when force reloads are enabled', () => {
161
+            iceFailedHandling.start();
162
+
163
+            return nextTick() // tick for ping
164
+                .then(() => nextTick(2500)) // tick for ice timeout
165
+                .then(() => {
166
+                    expect(emitEventSpy).toHaveBeenCalled();
167
+                });
168
+        });
169
+    });
150 170
 });

Carregando…
Cancelar
Salvar