Serveur TURN
Fais tourner ton propre serveur TURN (RFC 8656) en Delphi. Alloue des adresses de transport relayées pour les clients incapables d'établir un chemin pair à pair, avec credentials longue durée et quotas par allocation.
Fais tourner ton propre serveur TURN (RFC 8656) en Delphi. Alloue des adresses de transport relayées pour les clients incapables d'établir un chemin pair à pair, avec credentials longue durée et quotas par allocation.
Un serveur TURN auto-hébergé — traite Allocate / CreatePermission / ChannelBind / Send / Refresh / Data, gère allocations et bande passante, valide les credentials longue durée.
TsgcTURNServer
Windows, macOS, Linux, iOS, Android
Enterprise
Configure Port + Realm, fournis les mots de passe par utilisateur via OnTURNAuthenticate, Active := True — ton serveur alloue désormais des relais pour tout 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 relais auto-hébergé — pour que tes déploiements WebRTC et ICE cessent de dépendre de fournisseurs TURN tiers.
Honore les requêtes Allocate avec REQUESTED-TRANSPORT, choisit un port de relais libre et suit la durée de vie. Refresh prolonge l'allocation ; le serveur la démonte à l'expiration.
Suit les permissions de pair et les liaisons de canaux par allocation. Rejette les trames Send/Data pour les pairs non autorisés selon la RFC 8656 §9.
Les enveloppes Send / Data de 36 octets et les trames ChannelData de 4 octets sont toutes deux prises en charge. Le relais transmet les datagrammes entre l'adresse de transport relayée et le pair lié.
OnTURNAuthenticate expose le nom d'utilisateur ; tu renvoies le mot de passe — le serveur valide MESSAGE-INTEGRITY et fait tourner les nonces automatiquement.
Configure Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps, Quota.AllocationLifetime pour limiter les abus. OnQuotaExceeded signale les rejets.
Bascule le transport du serveur sous-jacent — UDP, TCP et TLS sur TCP sont tous pris en charge. Les clients WebRTC choisissent celui qui traverse leur NAT.
Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.
| Aide en ligne — TsgcTURNServer Référence complète des propriétés, méthodes et événements de ce composant. | Ouvrir | |
| Projet de démo — Demos\35.P2P\03.TURN Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous. | Ouvrir | |
| Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement. | Ouvrir | |
| Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque. | Ouvrir |