ICE (Interactive Connectivity Establishment) é o protocolo usado para conectar 2 peers, ele determina todas as rotas possíveis entre os 2 peers e então garante que estejam conectados. Essas rotas também são conhecidas como Candidate Pairs, que são um pareamento de endereço de transporte local e remoto. Esses endereços podem ser o Endereço IP local, o Endereço IP público ou o Relayed Transport Address. Cada peer coleta todos os endereços que deseja usar, os troca e então tenta conectar.
Os seguintes eventos podem ser chamados ao coletar Addresses
OnRTCLocalCandidate
O evento é chamado quando um novo candidato local é encontrado.
OnRTCRemoteCandidate
O evento é chamado quando o servidor websocket envia um candidato remoto para este peer.
OnRTCLocalDescription
O evento é chamado quando o TsgcRTCPeerConnection requer o SDP local
OnRTCRemoteDescription
O evento é chamado quando o servidor websocket envia o SDP remoto a este peer.
Quando o peer envia requisições de binding para o outro peer para testar se consegue conectar, os seguintes eventos podem ser chamados
OnRTCCandidatePairNominated
Quando ambos os peers conseguem conectar usando este par de candidatos, o evento é chamado.
OnRTCCandidatePairFailed
Quando os peers não conseguem conectar usando este par de candidatos, este evento é chamado.
OnRTCConnect
Este evento é chamado quando há um par de candidatos válido e o DTLS não está habilitado.
Se o DTLS estiver habilitado, este evento é chamado após um Handshake DTLS bem-sucedido.