TURN-Server
Betreibe deinen eigenen TURN-Server (RFC 8656) in Delphi. Allokiere weitergeleitete Transportadressen für Clients, die keinen Peer-to-Peer-Pfad herstellen können — mit Long-Term-Credentials und Per-Allocation-Quotas.
Betreibe deinen eigenen TURN-Server (RFC 8656) in Delphi. Allokiere weitergeleitete Transportadressen für Clients, die keinen Peer-to-Peer-Pfad herstellen können — mit Long-Term-Credentials und Per-Allocation-Quotas.
Ein selbst gehosteter TURN-Server — verarbeitet Allocate / CreatePermission / ChannelBind / Send / Refresh / Data, verwaltet Allokationen und Bandbreite und validiert Long-Term-Credentials.
TsgcTURNServer
Windows, macOS, Linux, iOS, Android
Enterprise
Setze Port + Realm, liefere per OnTURNAuthenticate Benutzerpasswörter, Active := True — dein Server allokiert jetzt Relays für jeden RFC-8656-Client.
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;
Ein selbst gehostetes Relay — sodass deine WebRTC- und ICE-Deployments nicht mehr auf Drittanbieter-TURN-Provider angewiesen sind.
Bedient Allocate-Requests mit REQUESTED-TRANSPORT, wählt einen freien Relay-Port und verfolgt die Lebensdauer. Refresh verlängert die Allokation; der Server baut sie beim Ablauf ab.
Verfolgt Peer-Permissions und Channel-Bindings pro Allokation. Verwirft Send-/Data-Frames für Peers, die gemäß RFC 8656 §9 nicht freigeschaltet sind.
Sowohl 36-Byte-Send/Data-Envelopes als auch 4-Byte-ChannelData-Frames werden unterstützt. Das Relay leitet Datagramme zwischen der weitergeleiteten Transportadresse und dem gebundenen Peer weiter.
OnTURNAuthenticate liefert den Benutzernamen; du gibst das Passwort zurück — der Server validiert MESSAGE-INTEGRITY und rotiert Nonces automatisch.
Setze Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps, Quota.AllocationLifetime, um Missbrauch zu begrenzen. OnQuotaExceeded meldet Ablehnungen.
Schalte den Transport des zugrundeliegenden Servers um — UDP, TCP und TLS über TCP werden alle unterstützt. WebRTC-Clients wählen, was ihr NAT durchquert.
Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.
| Online-Hilfe — TsgcTURNServer Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente. | Öffnen | |
| Demo-Projekt — Demos\35.P2P\03.TURN Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt. | Öffnen |