ICE-client

Voer het volledige ICE-algoritme uit in Delphi/C++Builder — verzamel host-, server-reflexive- en relay-kandidaten, voer STUN-connectiviteitscontroles uit en nomineer het beste paar volgens RFC 8445.

TsgcICEClient

Implementeert de ICE-toestandsmachine uit RFC 8445 — verzamelen van kandidaten, prioritering, paargeneratie, connectiviteitscontroles (BindingRequest met USE-CANDIDATE), nominatie en consent freshness.

Componentklasse

TsgcICEClient

Protocol

ICE (RFC 8445)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Professional / Enterprise

Configureer servers, verzamel, wissel uit en controleer

Configureer STUN-/TURN-ICE-servers, roep GatherCandidates aan, wissel de kandidatenlijst uit met de peer (out-of-band) en roep dan StartChecks aan om een werkend paar te nomineren.

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();

Wat zit erin

Een herbruikbare ICE-engine die onder TsgcRTCPeerConnection past — of op zichzelf draait voor niet-WebRTC P2P.

Verzamelen van kandidaten

Somt host-kandidaten op vanaf elke lokale interface, server-reflexive-kandidaten vanaf elke STUN-server en relay-kandidaten vanaf elke TURN-server — allemaal parallel.

Paargeneratie & prioritering

Berekent de prioriteiten van kandidaatparen volgens RFC 8445 §6.1.2 en ordent de check-lijst. Frozen pairs ontdooien zodra hun foundation vooruitgang boekt.

Connectiviteitscontroles

Verstuurt STUN-BindingRequests met PRIORITY-, ICE-CONTROLLING- / ICE-CONTROLLED- en USE-CANDIDATE-attributen volgens de standaard. Triggered checks worden gestart bij inkomende stimulus.

Nominatie

Wanneer een paar slaagt en de controlling agent USE-CANDIDATE markeert, vuurt de component OnICEConnectionStateChanged af met iceConnected, en daarna iceCompleted op het uiteindelijk geselecteerde paar.

Implementeert consent-freshness-probes uit RFC 7675 — periodieke STUN-BindingRequests op het genomineerde paar, met OnICEConnectionStateChanged(iceFailed) wanneer consent verloren gaat.

Signalling-agnostisch

De component gaat niet uit van een specifiek signalling-kanaal — je marshalt lokale kandidaten via je eigen WebSocket-/SIP-/HTTP-signalling en voert remote kandidaten weer terug.

Specificaties & referenties

Gezaghebbende bronnen voor het protocol dat deze component implementeert.

Documentatie & demo's

Deep-link naar de componentreferentie, pak het kant-en-klare demoproject en download de proefversie.

Online help — TsgcICEClient Volledige referentie van eigenschappen, methoden en events voor deze component.
Demoproject — Demos\35.P2P\04.ICE Kant-en-klaar voorbeeldproject. Wordt meegeleverd in de sgcWebSockets-package — download hieronder de proefversie.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen voor deze component.
Gebruikershandleiding (PDF) Uitgebreide handleiding die elke component in de bibliotheek behandelt.

Klaar om ICE in Delphi te draaien?

Download de gratis proefversie en voeg volledige ICE-kandidaatverzameling en connectiviteitscontroles toe aan je Delphi-applicaties.