Aller au contenu principal

3.5.4. ICE Candidate Pool (Pool de candidats ICE)

3.5.4. ICE Candidate Pool (Pool de candidats ICE)

Les applications JSEP informent généralement l'implémentation JSEP de commencer la collecte ICE via les informations fournies à setLocalDescription, car la description locale indique le nombre de composants ICE qui seront nécessaires et pour lesquels des candidats doivent être collectés. Cependant, pour accélérer les cas où l'application connaît à l'avance le nombre de composants ICE à utiliser, elle peut demander à l'implémentation de collecter un pool de candidats ICE potentiels pour aider à garantir une configuration média rapide.

Lorsque setLocalDescription est finalement appelé et que l'implémentation JSEP se prépare à collecter les candidats ICE nécessaires, elle DEVRAIT commencer par vérifier si des candidats sont disponibles dans le pool. S'il y a des candidats dans le pool, ils DEVRAIENT être remis à l'application immédiatement via l'événement de candidat ICE. Si le pool s'épuise, soit parce qu'un nombre de composants ICE plus important que prévu est utilisé, soit parce que le pool n'a pas eu assez de temps pour collecter des candidats, les candidats restants sont collectés comme d'habitude. Cela ne se produit que pour le premier échange offre/réponse, après quoi le pool de candidats est vidé et n'est plus utilisé.

Un exemple où ce concept est utile est une application qui s'attend à un appel entrant à un moment donné dans le futur et souhaite minimiser le temps nécessaire pour établir la connectivité, afin d'éviter la coupure du média initial. En pré-collectant des candidats dans le pool, elle peut échanger et commencer à envoyer des vérifications de connectivité à partir de ces candidats presque immédiatement lors de la réception d'un appel. Notez cependant qu'en conservant ces candidats pré-collectés, qui seront maintenus actifs tant qu'ils peuvent être nécessaires, l'application consommera des ressources sur les serveurs STUN/TURN qu'elle utilise. ("STUN" signifie "Session Traversal Utilities for NAT", utilitaires de traversée de session pour NAT.)