Delphi 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

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 denetimleri çalıştırmak ve çalışan bir çifti aday göstermek için ProcessCandidates çağırın.

uses
  sgcP2P, sgcP2P_ICE_Classes;

// TFormICE, FClient: TsgcICEClient ve FLog: TStringList tutar

procedure TFormICE.Gather;
begin
  FClient := TsgcICEClient.Create(nil);
  FClient.ICEServers.AddURL('stun:stun.l.google.com:19302');
  FClient.ICEServers.AddURL('turn:turn.example.com', 'alice', 'secret');

  FClient.OnICECandidate := OnICECandidate;
  FClient.OnICECandidatePairNominated := OnICECandidatePairNominated;

  FClient.GatherCandidates;
end;

procedure TFormICE.OnICECandidate(Sender: TObject;
  const aCandidate: TsgcICE_Candidate);
begin
  // AsString aday satırıdır, sinyalleşme kanalınız için hazırdır
  SignalToPeer(aCandidate.AsString);
end;

// uzak adaylar sinyalleşme kanalınız üzerinden ulaşır
procedure TFormICE.AddRemoteCandidate(const aCandidate: string);
begin
  FClient.AddRTCIceCandidate(aCandidate);
  FClient.ProcessCandidates;
end;

procedure TFormICE.OnICECandidatePairNominated(Sender: TObject;
  const aCandidatePair: TsgcICE_CandidatePair);
begin
  FLog.Add('nominated: ' + aCandidatePair.Local.Address + ' -> ' +
    aCandidatePair.Remote.Address);
end;
// includes: sgcP2P.hpp, sgcP2P_ICE_Classes.hpp
TsgcICEClient *Client = new TsgcICEClient(this);
Client->ICEServers->AddURL("stun:stun.l.google.com:19302");
Client->OnICECandidate = OnICECandidate;
Client->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 kazanan çiftle birlikte OnICECandidatePairNominated tetikler; aCandidatePair.Local / Remote ise hangi iki adresin seçildiğini söyler.

RFC 7675 consent-freshness yoklamalarını uygular: aday gösterilen çift üzerinde her ConsentInterval milisaniyede bir Binding isteği ve ConsentTimeout süresi yanıtsız geçtiğinde Consent Freshness Timeout nedeniyle OnICECandidatePairFailed.

Sinyalleşmeden bağımsız

Bileşen belirli bir sinyalleşme kanalı varsaymaz. aCandidate.AsString değerini WebSocket, SIP veya HTTP sinyalleşmeniz üzerine koyarsınız ve geri geleni AddRTCIceCandidate ve ardından ProcessCandidates ile 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.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

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.