Client ICE

Exécute l'algorithme ICE complet en Delphi/C++Builder — collecte des candidats host, server-reflexive et relay, exécute les vérifications de connectivité STUN, nomine la meilleure paire selon la RFC 8445.

TsgcICEClient

Implémente la machine à états ICE de la RFC 8445 — collecte des candidats, priorisation, génération de paires, vérifications de connectivité (BindingRequest avec USE-CANDIDATE), nomination et fraîcheur du consentement.

Classe du composant

TsgcICEClient

Protocole

ICE (RFC 8445)

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Professional / Enterprise

Configure les serveurs, collecte, échange, vérifie

Configure les serveurs STUN/TURN ICE, appelle GatherCandidates, échange la liste de candidats avec le pair (hors bande), puis StartChecks pour nominer une paire fonctionnelle.

uses
  sgcP2P;

var
  ICE: TsgcICEClient;
begin
  ICE := TsgcICEClient.Create(nil);
  ICE.IceServers.Add('stun:stun.l.google.com:19302');
  ICE.IceServers.Add('turn:turn.example.com', 'alice', 'secret');

  ICE.OnICELocalCandidate := procedure(Sender: TObject;
    const aCandidate: string)
  begin
    SignalToPeer(aCandidate); // out-of-band SDP / WebSocket
  end;

  ICE.OnICEConnectionStateChanged := procedure(Sender: TObject;
    const aState: TsgcICEConnectionState)
  begin
    Memo1.Lines.Add('ICE: ' + GetEnumName(TypeInfo(TsgcICEConnectionState), Ord(aState)));
  end;

  ICE.GatherCandidates;
end;
// uses: sgcP2P
TsgcICEClient *ICE = new TsgcICEClient(this);
ICE->IceServers->Add("stun:stun.l.google.com:19302");
ICE->GatherCandidates();

Sous le capot

Un moteur ICE réutilisable qui se place sous TsgcRTCPeerConnection — ou fonctionne seul pour du P2P hors WebRTC.

Collecte des candidats

Énumère les candidats host depuis chaque interface locale, les candidats server-reflexive depuis chaque serveur STUN, les candidats relayed depuis chaque serveur TURN — tous en parallèle.

Génération et priorisation des paires

Calcule les priorités des paires de candidats selon la RFC 8445 §6.1.2 et ordonne la liste de vérification. Les paires gelées dégèlent à mesure que leur fondation progresse.

Vérifications de connectivité

Envoie des STUN BindingRequests avec les attributs PRIORITY, ICE-CONTROLLING / ICE-CONTROLLED, USE-CANDIDATE selon la norme. Les vérifications déclenchées s'activent sur stimulus entrant.

Nomination

Lorsqu'une paire réussit et que l'agent contrôleur marque USE-CANDIDATE, le composant déclenche OnICEConnectionStateChanged avec iceConnected, puis iceCompleted sur la paire finale sélectionnée.

Fraîcheur du consentement

Implémente les sondes consent-freshness de la RFC 7675 — STUN BindingRequests périodiques sur la paire nominée, avec OnICEConnectionStateChanged(iceFailed) en cas de perte de consentement.

Indépendant du signalling

Le composant ne suppose aucun canal de signalisation spécifique — tu transportes les candidats locaux sur ton signalling WebSocket / SIP / HTTP et tu réinjectes les candidats distants.

Spécifications et références

Sources de référence pour le protocole implémenté par ce composant.

Documentation et démos

Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.

Aide en ligne — TsgcICEClient Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — Demos\35.P2P\04.ICE Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous.
Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement.
Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque.

Prêt à exécuter ICE en Delphi ?

Télécharge l'essai gratuit et ajoute la collecte complète de candidats ICE et les vérifications de connectivité à tes applications Delphi.