ICE İstemcisi

Tam ICE algoritmasını Delphi/C++Builder'da çalıştırın — host, server-reflexive ve relay adaylarını toplayın, STUN bağlantı denetimleri yapın, RFC 8445'e göre en iyi çifti seçin.

TsgcICEClient

RFC 8445 ICE durum makinesini uygular — aday toplama, önceliklendirme, çift oluşturma, bağlantı denetimleri (USE-CANDIDATE ile BindingRequest), seçim ve consent freshness.

Bileşen sınıfı

TsgcICEClient

Protokol

ICE (RFC 8445)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Professional / Enterprise

Sunucuları yapılandırın, toplayın, değiş tokuş edin, denetleyin

STUN/TURN ICE sunucularını yapılandırın, GatherCandidates çağırın, aday listesini eşle değiş tokuş edin (bant dışı), ardından çalışan bir çifti seçmek için StartChecks çağırın.

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

İçeriğinde neler var

TsgcRTCPeerConnection'ın altına yerleşen — veya WebRTC dışı P2P için kendi başına çalışan yeniden kullanılabilir bir ICE motoru.

Aday toplama

Her yerel arabirimden host adaylarını, her STUN sunucusundan server-reflexive adaylarını, her TURN sunucusundan relayed adaylarını numaralandırır — tümü paralel olarak.

Çift oluşturma ve önceliklendirme

Aday-çift önceliklerini RFC 8445 §6.1.2'ye göre hesaplar ve denetim listesini sıralar. Dondurulmuş çiftler, temelleri ilerledikçe çözülür.

Bağlantı denetimleri

Standarda göre PRIORITY, ICE-CONTROLLING / ICE-CONTROLLED, USE-CANDIDATE öznitelikleriyle STUN BindingRequest gönderir. Tetiklenen denetimler gelen uyaranla çalışır.

Seçim

Bir çift başarılı olduğunda ve kontrol eden aracı USE-CANDIDATE işaretlediğinde, bileşen iceConnected ile OnICEConnectionStateChanged tetikler, ardından son seçilen çiftte iceCompleted.

RFC 7675 consent-freshness yoklamalarını uygular — seçilen çiftte periyodik STUN BindingRequest'leri, onay kaybedildiğinde OnICEConnectionStateChanged(iceFailed) ile.

Sinyalleşmeden bağımsız

Bileşen belirli bir sinyalleşme kanalı varsaymaz — yerel adayları WebSocket / SIP / HTTP sinyalleşmeniz üzerinden iletir ve uzak adayları geri beslersiniz.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı protokol için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — TsgcICEClient Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\35.P2P\04.ICE Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

Delphi'de ICE Çalıştırmaya Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi uygulamalarınıza tam ICE aday toplama ve bağlantı denetimleri ekleyin.