TURN-servercomponent voor Delphi & C++ Builder | eSeGeCe

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.

TsgcTURNServer

Een self-hosted TURN-server — verwerkt Allocate / CreatePermission / ChannelBind / Send / Refresh / Data, beheert allocations en bandbreedte en valideert long-term credentials.

Componentklasse

TsgcTURNServer

Protocol

TURN (RFC 8656)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Enterprise

Plaatsen, realm instellen, credentials uitdelen

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;

Wat zit erin

Een self-hosted relay — zo zijn je WebRTC- en ICE-deployments niet langer afhankelijk van externe TURN-providers.

Allocate / Refresh / Free

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.

CreatePermission / ChannelBind

Houdt peer-permissions en channel-bindings per allocation bij. Verwerpt Send/Data-frames voor peers zonder permissie volgens RFC 8656 §9.

Send / Data / ChannelData

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.

Long-term credentials

OnTURNAuthenticate geeft de username door; jij retourneert het wachtwoord — de server valideert MESSAGE-INTEGRITY en roteert nonces automatisch.

Quota

Stel Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps en Quota.AllocationLifetime in om misbruik te beperken. OnQuotaExceeded rapporteert afwijzingen.

TURN over TCP / TLS

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.

Specificaties & referenties

Autoritatieve bronnen voor het protocol dat dit component implementeert.

Documentatie & demo's

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.
Demoproject — Demos\35.P2P\03.TURN Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component.
Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek.

Veelgestelde vragen over TURN-server

Veelgestelde vragen over het draaien van een zelf-gehoste TURN-relay in Delphi en C++ Builder.

Plaats een TsgcTURNServer component, stel Port en Realm in, lever per-gebruiker wachtwoorden vanuit de OnTURNAuthenticate-event, en zet dan Active := True. De server verwerkt vervolgens Allocate, CreatePermission, ChannelBind, Send, Refresh en Data voor elke RFC 8656-client, en relayt datagrams tussen het relayed transport address en de gebonden peer.
Het implementeert TURN volgens RFC 8656, valideert long-term credentials met MESSAGE-INTEGRITY en roteert nonces automatisch. Het verwijst ook naar RFC 6062 voor TURN-over-TCP-allocaties en RFC 8489 voor het onderliggende STUN-berichtformaat, en ondersteunt UDP-, TCP- en TLS-over-TCP-transporten.
Nee. TsgcTURNServer is een zelf-gehoste relay die je in je eigen Delphi- of C++ Builder-toepassing inbouwt, zodat je WebRTC- en ICE-deployments niet langer afhankelijk hoeven te zijn van TURN-providers van derden of een aparte coturn-installatie. Quota per allocatie (max. allocaties per gebruiker, bandbreedte en levensduur) begrenzen misbruik, waarbij OnQuotaExceeded afwijzingen rapporteert.
De TURN-server maakt deel uit van de sgcWebSockets Enterprise-editie en ondersteunt Delphi 7 tot en met de nieuwste Delphi-release en de bijbehorende C++ Builder-versies, op Windows, macOS, Linux, iOS en Android. Download de gratis proefversie om een TURN-relay in je eigen project op te zetten.

Klaar om je eigen TURN-server te draaien?

Download de gratis proefversie en zet een TURN-relay op in Delphi.