3.5.4. ICE Candidate Pool (ICE 候補プール)
3.5.4. ICE Candidate Pool (ICE 候補プール)
JSEP アプリケーションは通常, setLocalDescription に提供される情報を介して, JSEP 実装に ICE 収集を開始するよう通知します。これは, ローカル記述が必要な ICE コンポーネントの数と, それらのために候補を収集する必要があることを示すためです。ただし, アプリケーションが使用する ICE コンポーネントの数を事前に知っている場合を高速化するために, 実装に潜在的な ICE 候補のプールを収集するよう要求して, 迅速なメディアセットアップを確保することができます。
最終的に setLocalDescription が呼び出され, JSEP 実装が必要な ICE 候補を収集する準備をするとき, プールに候補が利用可能かどうかをまず確認する必要があります。プールに候補がある場合, ICE 候補イベントを介してアプリケーションに即座に渡される必要があります。プールが枯渇した場合 (予想よりも多くの ICE コンポーネントが使用されたため, またはプールが候補を収集するのに十分な時間がなかったため), 残りの候補は通常どおり収集されます。これは最初の offer/answer 交換でのみ発生し, その後候補プールは空になり, 使用されなくなります。
この概念が有用な例の 1 つは, 将来のある時点で着信呼び出しを予期しており, 初期メディアのクリッピングを避けるために接続を確立するのにかかる時間を最小限に抑えたいアプリケーションです。候補をプールに事前収集することで, 呼び出しを受信するとほぼ即座にこれらの候補から接続性チェックの交換と送信を開始できます。ただし, これらの事前収集された候補を保持することで (必要とされる限り維持されます), アプリケーションは使用している STUN/TURN サーバー上のリソースを消費することに注意してください。("STUN" は "Session Traversal Utilities for NAT" (NAT のセッション通過ユーティリティ) の略です)。