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.
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.
Un server TURN self-hosted — elabora Allocate / CreatePermission / ChannelBind / Send / Refresh / Data, gestisce allocazioni e banda, valida le credenziali long-term.
TsgcTURNServer
Windows, macOS, Linux, iOS, Android
Enterprise
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;
Un relay self-hosted — permette ai tuoi deployment WebRTC e ICE di smettere di dipendere da provider TURN di terze parti.
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.
Traccia permessi peer e channel binding per ogni allocazione. Scarta frame Send/Data per peer non autorizzati, secondo RFC 8656 §9.
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.
OnTURNAuthenticate espone lo username; tu restituisci la password — il server valida MESSAGE-INTEGRITY e ruota automaticamente i nonce.
Imposta Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps, Quota.AllocationLifetime per limitare gli abusi. OnQuotaExceeded segnala i rifiuti.
Cambia il trasporto del server sottostante — sono supportati UDP, TCP e TLS su TCP. I client WebRTC scelgono quello che attraversa il loro NAT.
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. | Apri | |
| Progetto demo — Demos\35.P2P\03.TURN Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto. | Apri | |
| Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente. | Apri | |
| Manuale utente (PDF) Manuale completo che copre ogni componente della libreria. | Apri |