Client TURN

Comunica con un server TURN da Delphi/C++Builder. Alloca indirizzi di trasporto relayed, gestisci permessi e canali, poi scambia dati con peer dietro NAT simmetrico — secondo RFC 8656.

TsgcTURNClient

Client TURN — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh, tutti firmati con credenziali long-term secondo RFC 8656.

Classe componente

TsgcTURNClient

Protocollo

TURN (RFC 8656)

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Professional / Enterprise

Alloca, autorizza, invia

Imposta server TURN / username / password, chiama Allocate, poi CreatePermission per ogni peer e Send / SendIndication per inoltrare i dati.

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

Cosa c'è all'interno

Un client TURN tipizzato RFC 8656 — lo strato di relay per WebRTC quando l'attraversamento NAT con solo STUN fallisce.

Allocate / Refresh

Allocate invia una richiesta Allocate con REQUESTED-TRANSPORT (UDP, TCP) e ottiene un indirizzo di trasporto relayed. Refresh estende la durata; Free dealloca esplicitamente.

CreatePermission

CreatePermission(peerIp) registra un peer i cui datagrammi il relay inoltrerà. I permessi scadono automaticamente dopo 5 minuti — aggiornali quando serve.

ChannelBind

ChannelBind(channelNumber, peerEndpoint) aggira l'overhead di 36 byte di Send/Data. Il componente codifica automaticamente l'header ChannelData da 4 byte.

Credenziali long-term

Authentication.UserName / Password popolano MESSAGE-INTEGRITY usando il realm e il nonce estratti dalla risposta di challenge 401.

TURN su TCP/TLS

Imposta il Transport del client sottostante su TCP o TLS per ambienti che bloccano UDP — sono supportate le scelte di trasporto RFC 6062 / 6056.

Pronto per WebRTC

TsgcRTCPeerConnection consuma TsgcTURNClient come uno dei suoi IceServers — la sequenza Allocate, CreatePermission e ChannelBind avviene in modo trasparente.

Specifiche e riferimenti

Fonti autorevoli per il protocollo implementato da questo componente.

Documentazione e demo

Collegamenti diretti al riferimento del componente, al progetto demo pronto all'uso e al download della versione di prova.

Guida online — TsgcTURNClient Riferimento completo di proprietà, metodi ed eventi di questo componente.
Progetto demo — Demos\35.P2P\03.TURN Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre ogni componente della libreria.

Pronto a usare TURN da Delphi?

Scarica la versione di prova gratuita e aggiungi il relay basato su TURN alle tue applicazioni Delphi.