Zum Hauptinhalt springen

3.5.4. ICE Candidate Pool (ICE-Kandidatenpool)

3.5.4. ICE Candidate Pool (ICE-Kandidatenpool)

JSEP-Anwendungen informieren die JSEP-Implementierung typischerweise über die Informationen, die an setLocalDescription übergeben werden, um mit dem ICE-Sammeln zu beginnen, da die lokale Beschreibung die Anzahl der benötigten ICE-Komponenten angibt, für die Kandidaten gesammelt werden müssen. Um jedoch Fälle zu beschleunigen, in denen die Anwendung die Anzahl der zu verwendenden ICE-Komponenten im Voraus kennt, kann sie die Implementierung bitten, einen Pool potenzieller ICE-Kandidaten zu sammeln, um einen schnellen Medienaufbau sicherzustellen.

Wenn setLocalDescription schließlich aufgerufen wird und die JSEP-Implementierung sich darauf vorbereitet, die benötigten ICE-Kandidaten zu sammeln, SOLLTE sie zunächst prüfen, ob Kandidaten im Pool verfügbar sind. Wenn Kandidaten im Pool vorhanden sind, SOLLTEN sie der Anwendung sofort über das ICE-Kandidaten-Ereignis übergeben werden. Wenn der Pool erschöpft ist, entweder weil eine größer als erwartete Anzahl von ICE-Komponenten verwendet wird oder weil der Pool nicht genug Zeit hatte, Kandidaten zu sammeln, werden die verbleibenden Kandidaten wie üblich gesammelt. Dies tritt nur beim ersten Angebot/Antwort-Austausch auf, danach wird der Kandidatenpool geleert und nicht mehr verwendet.

Ein Beispiel, wo dieses Konzept nützlich ist, ist eine Anwendung, die zu einem späteren Zeitpunkt einen eingehenden Anruf erwartet und die Zeit zum Herstellen der Konnektivität minimieren möchte, um das Abschneiden von initialem Media zu vermeiden. Durch das Vorsammeln von Kandidaten in den Pool kann sie Konnektivitätsprüfungen von diesen Kandidaten fast sofort nach Erhalt eines Anrufs austauschen und senden. Beachten Sie jedoch, dass die Anwendung durch das Festhalten an diesen vorgesammelten Kandidaten, die so lange am Leben gehalten werden, wie sie möglicherweise benötigt werden, Ressourcen auf den STUN/TURN-Servern verbraucht, die sie verwendet. ("STUN" steht für "Session Traversal Utilities for NAT", Sitzungsdurchquerungshilfsprogramme für NAT.)