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.
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.
Implementeert de ICE-toestandsmachine uit RFC 8445 — verzamelen van kandidaten, prioritering, paargeneratie, connectiviteitscontroles (BindingRequest met USE-CANDIDATE), nominatie en consent freshness.
TsgcICEClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
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();
Een herbruikbare ICE-engine die onder TsgcRTCPeerConnection past — of op zichzelf draait voor niet-WebRTC P2P.
Somt host-kandidaten op vanaf elke lokale interface, server-reflexive-kandidaten vanaf elke STUN-server en relay-kandidaten vanaf elke TURN-server — allemaal parallel.
Berekent de prioriteiten van kandidaatparen volgens RFC 8445 §6.1.2 en ordent de check-lijst. Frozen pairs ontdooien zodra hun foundation vooruitgang boekt.
Verstuurt STUN-BindingRequests met PRIORITY-, ICE-CONTROLLING- / ICE-CONTROLLED- en USE-CANDIDATE-attributen volgens de standaard. Triggered checks worden gestart bij inkomende stimulus.
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.
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.
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. | Openen | |
| Demoproject — Demos\35.P2P\04.ICE Kant-en-klaar voorbeeldproject. Wordt meegeleverd in de sgcWebSockets-package — download hieronder de proefversie. | Openen | |
| Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen voor deze component. | Openen | |
| Gebruikershandleiding (PDF) Uitgebreide handleiding die elke component in de bibliotheek behandelt. | Openen |