Quellcode durchsuchen

Avoid 'session-accept' timeout

Do not flush the connection after 'session-accept'
is queued to avoid BOSH race condition issue.
master
paweldomas vor 9 Jahren
Ursprung
Commit
30c7739899
1 geänderte Dateien mit 16 neuen und 1 gelöschten Zeilen
  1. 16
    1
      modules/xmpp/JingleSessionPC.js

+ 16
- 1
modules/xmpp/JingleSessionPC.js Datei anzeigen

@@ -444,7 +444,22 @@ JingleSessionPC.prototype.sendSessionAccept = function (localSDP,
444 444
     // XXX Videobridge needs WebRTC's answer (ICE ufrag and pwd, DTLS
445 445
     // fingerprint and setup) ASAP in order to start the connection
446 446
     // establishment.
447
-    this.connection.flush();
447
+    //
448
+    // FIXME Flushing the connection at this point triggers an issue with BOSH
449
+    // request handling in Prosody on slow connections.
450
+    //
451
+    // The problem is that this request will be quite large and it may take time
452
+    // before it reaches Prosody. In the meantime Strophe may decide to send
453
+    // the next one. And it was observed that a small request with
454
+    // 'transport-info' usually follows this one. It does reach Prosody before
455
+    // the previous one was completely received. 'rid' on the server is
456
+    // increased and Prosody ignores the request with 'session-accept'. It will
457
+    // never reach Jicofo and everything in the request table is lost. Removing
458
+    // the flush does not guarantee it will never happen, but makes it much less
459
+    // likely('transport-info' is bundled with 'session-accept' and any
460
+    // immediate requests).
461
+    //
462
+    // this.connection.flush();
448 463
 };
449 464
 
450 465
 /**

Laden…
Abbrechen
Speichern