ICE Client
Execute o algoritmo ICE completo em Delphi/C++Builder — colete candidatos host, server-reflexive e relay, execute verificações de conectividade STUN e nomine o melhor par conforme a RFC 8445.
Execute o algoritmo ICE completo em Delphi/C++Builder — colete candidatos host, server-reflexive e relay, execute verificações de conectividade STUN e nomine o melhor par conforme a RFC 8445.
Implementa a máquina de estados ICE da RFC 8445 — coleta de candidatos, priorização, geração de pares, verificações de conectividade (BindingRequest com USE-CANDIDATE), nomeação e renovação de consentimento.
TsgcICEClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Configure os servidores ICE STUN/TURN, chame GatherCandidates, troque a lista de candidatos com o peer (fora de banda) e depois StartChecks para nominar um par funcional.
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();
Um motor ICE reutilizável que funciona abaixo do TsgcRTCPeerConnection — ou de forma independente para P2P não-WebRTC.
Enumera candidatos host de cada interface local, candidatos server-reflexive de cada servidor STUN e candidatos relay de cada servidor TURN — tudo em paralelo.
Calcula as prioridades dos pares de candidatos conforme a RFC 8445 §6.1.2 e ordena a lista de verificação. Pares congelados descongelam conforme sua base avança.
Envia STUN BindingRequests com os atributos PRIORITY, ICE-CONTROLLING / ICE-CONTROLLED e USE-CANDIDATE conforme o padrão. Verificações disparadas ocorrem em resposta a estímulos de entrada.
Quando um par tem sucesso e o agente controlador sinaliza USE-CANDIDATE, o componente dispara OnICEConnectionStateChanged com iceConnected e depois iceCompleted no par final selecionado.
Implementa probes de consent-freshness da RFC 7675 — STUN BindingRequests periódicos no par nominado, com OnICEConnectionStateChanged(iceFailed) quando o consentimento é perdido.
O componente não assume um canal de sinalização específico — você encaminha os candidatos locais pelo seu canal WebSocket / SIP / HTTP e injeta os candidatos remotos de volta.
Acesse a referência do componente, obtenha o projeto demo pronto para executar e baixe a versão de avaliação.
| Ajuda online — TsgcICEClient Referência completa de propriedades, métodos e eventos deste componente. | Abrir | |
| Projeto de demonstração — Demos\35.P2P\04.ICE Projeto de exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo. | Abrir | |
| Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente este componente. | Abrir | |
| Manual do usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca. | Abrir |