Klient TURN

Komunikuj się z serwerem TURN z Delphi/C++Builder. Alokuj przekazywane adresy transportowe, zarządzaj uprawnieniami i kanałami, a następnie wymieniaj dane z peerami za symetrycznym NAT — zgodnie z RFC 8656.

TsgcTURNClient

Klient TURN — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh, wszystko podpisane poświadczeniami long-term zgodnie z RFC 8656.

Klasa komponentu

TsgcTURNClient

Protokół

TURN (RFC 8656)

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Professional / Enterprise

Allocate, permission, send

Ustaw serwer TURN / nazwę użytkownika / hasło, wywołaj Allocate, a następnie CreatePermission dla każdego peera i Send / SendIndication, aby przekazywać dane.

uses
  sgcP2P;

var
  TURN: TsgcTURNClient;
begin
  TURN := TsgcTURNClient.Create(nil);
  TURN.Host := 'turn.example.com';
  TURN.Port := 3478;
  TURN.Authentication.UserName := 'alice';
  TURN.Authentication.Password := 'secret';

  TURN.OnTURNAllocated := procedure(Sender: TObject;
    const aRelayedAddress, aRelayedPort: string)
  begin
    Memo1.Lines.Add('relay: ' + aRelayedAddress + ':' + aRelayedPort);
    TURN.CreatePermission('192.0.2.1');
    TURN.SendIndication('192.0.2.1', 5000, 'hello via TURN');
  end;

  TURN.Allocate;
end;
// uses: sgcP2P
TsgcTURNClient *TURN = new TsgcTURNClient(this);
TURN->Host = "turn.example.com";
TURN->Port = 3478;
TURN->Authentication->UserName = "alice";
TURN->Authentication->Password = "secret";
TURN->Allocate();

Co jest w środku

Typowany klient TURN zgodny z RFC 8656 — warstwa przekazywania dla WebRTC, gdy traversal NAT oparty wyłącznie na STUN zawodzi.

Allocate / Refresh

Allocate wysyła żądanie Allocate z REQUESTED-TRANSPORT (UDP, TCP) i uzyskuje przekazywany adres transportowy. Refresh przedłuża czas życia; Free jawnie zwalnia alokację.

CreatePermission

CreatePermission(peerIp) rejestruje peera, którego datagramy będą przekazywane przez relay. Uprawnienia wygasają automatycznie po 5 minutach — odświeżaj je w razie potrzeby.

ChannelBind

ChannelBind(channelNumber, peerEndpoint) omija 36-bajtowy narzut Send/Data. Komponent automatycznie koduje 4-bajtowy nagłówek ChannelData.

Poświadczenia long-term

Authentication.UserName / Password wypełniają MESSAGE-INTEGRITY przy użyciu realm i nonce pobranych z challenge 401.

TURN przez TCP/TLS

Ustaw Transport klienta na TCP lub TLS dla środowisk blokujących UDP — obsługiwane są opcje transportu zgodne z RFC 6062 / 6056.

Gotowy do WebRTC

TsgcRTCPeerConnection korzysta z TsgcTURNClient jako jednego z IceServers — sekwencja Allocate, CreatePermission i ChannelBind odbywa się przezroczyście.

Specyfikacje i odniesienia

Wiarygodne źródła protokołu, który implementuje ten komponent.

Dokumentacja i dema

Przejdź bezpośrednio do dokumentacji komponentu, pobierz gotowy do uruchomienia projekt demonstracyjny i pobierz wersję próbną.

Pomoc online — TsgcTURNClient Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\35.P2P\03.TURN Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy, by korzystać z TURN w Delphi?

Pobierz bezpłatną wersję próbną i dodaj przekazywanie oparte na TURN do swoich aplikacji Delphi.