TURN-server
Draai je eigen TURN-server (RFC 8656) in Delphi. Wijs gerelayde transportadressen toe aan clients die geen peer-to-peer pad tot stand kunnen brengen, met long-term credentials en quota per allocation.
Draai je eigen TURN-server (RFC 8656) in Delphi. Wijs gerelayde transportadressen toe aan clients die geen peer-to-peer pad tot stand kunnen brengen, met long-term credentials en quota per allocation.
Een self-hosted TURN-server — verwerkt Allocate / CreatePermission / ChannelBind / Send / Refresh / Data, beheert allocations en bandbreedte en valideert long-term credentials.
TsgcTURNServer
Windows, macOS, Linux, iOS, Android
Enterprise
Stel Port + Realm in, lever wachtwoorden per gebruiker via OnTURNAuthenticate, Active := True — je server wijst nu relays toe aan elke 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;
Een self-hosted relay — zo zijn je WebRTC- en ICE-deployments niet langer afhankelijk van externe TURN-providers.
Honoreert Allocate-requests met REQUESTED-TRANSPORT, kiest een vrije relay-poort en houdt de levensduur bij. Refresh verlengt de allocation; de server breekt hem af bij verloop.
Houdt peer-permissions en channel-bindings per allocation bij. Verwerpt Send/Data-frames voor peers zonder permissie volgens RFC 8656 §9.
Zowel 36 byte Send / Data-envelopes als 4 byte ChannelData-frames worden ondersteund. De relay stuurt datagrammen door tussen het relayed-transport-address en de gebonden peer.
OnTURNAuthenticate geeft de username door; jij retourneert het wachtwoord — de server valideert MESSAGE-INTEGRITY en roteert nonces automatisch.
Stel Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps en Quota.AllocationLifetime in om misbruik te beperken. OnQuotaExceeded rapporteert afwijzingen.
Pas het transport van de onderliggende server aan — UDP, TCP en TLS over TCP worden allemaal ondersteund. WebRTC-clients kiezen de variant die door hun NAT komt.
Direct linken naar de componentreferentie, het kant-en-klare demoproject pakken en de proefversie downloaden.
| Online help — TsgcTURNServer Volledige referentie van eigenschappen, methoden en gebeurtenissen voor dit component. | Openen | |
| Demoproject — Demos\35.P2P\03.TURN Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie. | Openen | |
| Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component. | Openen | |
| Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek. | Openen |