Server TURN

Esegui il tuo server TURN (RFC 8656) in Delphi. Alloca indirizzi di trasporto relayed per client che non riescono a stabilire un percorso peer-to-peer, con credenziali long-term e quote per allocazione.

TsgcTURNServer

Un server TURN self-hosted — elabora Allocate / CreatePermission / ChannelBind / Send / Refresh / Data, gestisce allocazioni e banda, valida le credenziali long-term.

Classe componente

TsgcTURNServer

Protocollo

TURN (RFC 8656)

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Enterprise

Trascina, imposta il realm, distribuisci credenziali

Imposta Port + Realm, fornisci le password per utente tramite OnTURNAuthenticate, Active := True — il tuo server ora alloca relay per qualunque client RFC 8656.

uses
  sgcP2P;

var
  TURNServer: TsgcTURNServer;
begin
  TURNServer := TsgcTURNServer.Create(nil);
  TURNServer.Port  := 3478;
  TURNServer.Realm := 'turn.example.com';

  TURNServer.OnTURNAuthenticate := procedure(Sender: TObject;
    const aUsername: string; var aPassword: string;
    var Accept: Boolean)
  begin
    aPassword := LookupPassword(aUsername);
    Accept    := aPassword <> '';
  end;

  TURNServer.Active := True;
end;
// uses: sgcP2P
TsgcTURNServer *TURNServer = new TsgcTURNServer(this);
TURNServer->Port  = 3478;
TURNServer->Realm = "turn.example.com";
TURNServer->Active = true;

Cosa c'è all'interno

Un relay self-hosted — permette ai tuoi deployment WebRTC e ICE di smettere di dipendere da provider TURN di terze parti.

Allocate / Refresh / Free

Onora le richieste Allocate con REQUESTED-TRANSPORT, sceglie una porta di relay libera e traccia la durata. Refresh estende l'allocazione; il server la termina alla scadenza.

CreatePermission / ChannelBind

Traccia permessi peer e channel binding per ogni allocazione. Scarta frame Send/Data per peer non autorizzati, secondo RFC 8656 §9.

Send / Data / ChannelData

Sono supportati sia gli envelope Send / Data da 36 byte sia i frame ChannelData da 4 byte. Il relay inoltra datagrammi tra il relayed-transport-address e il peer associato.

Credenziali long-term

OnTURNAuthenticate espone lo username; tu restituisci la password — il server valida MESSAGE-INTEGRITY e ruota automaticamente i nonce.

Quote

Imposta Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps, Quota.AllocationLifetime per limitare gli abusi. OnQuotaExceeded segnala i rifiuti.

TURN su TCP / TLS

Cambia il trasporto del server sottostante — sono supportati UDP, TCP e TLS su TCP. I client WebRTC scelgono quello che attraversa il loro NAT.

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 — TsgcTURNServer 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 eseguire il tuo server TURN?

Scarica la versione di prova gratuita e avvia un relay TURN in Delphi.