TURN Server
Ejecuta tu propio servidor TURN (RFC 8656) en Delphi. Asigna direcciones de transporte retransmitidas para clientes que no pueden establecer una ruta peer-to-peer, con credenciales long-term y cuotas por asignación.
Ejecuta tu propio servidor TURN (RFC 8656) en Delphi. Asigna direcciones de transporte retransmitidas para clientes que no pueden establecer una ruta peer-to-peer, con credenciales long-term y cuotas por asignación.
Un servidor TURN autoalojado — procesa Allocate / CreatePermission / ChannelBind / Send / Refresh / Data, gestiona asignaciones y ancho de banda, valida credenciales long-term.
TsgcTURNServer
Windows, macOS, Linux, iOS, Android
Enterprise
Configura Port + Realm, proporciona contraseñas por usuario mediante OnTURNAuthenticate, Active := True — tu servidor asignará relays a cualquier cliente 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 autoalojado — permite que tus despliegues WebRTC e ICE dejen de depender de proveedores TURN externos.
Atiende las peticiones Allocate con REQUESTED-TRANSPORT, elige un puerto de relay libre y controla su duración. Refresh prolonga la asignación; el servidor la elimina al expirar.
Controla los permisos por par y los channel bindings por asignación. Descarta frames Send/Data de pares que no han sido permitidos según RFC 8656 §9.
Se admiten tanto los sobres Send / Data de 36 bytes como los frames ChannelData de 4 bytes. El relay reenvía datagramas entre la dirección de transporte retransmitida y el par enlazado.
OnTURNAuthenticate expone el nombre de usuario; tú devuelves la contraseña — el servidor valida MESSAGE-INTEGRITY y rota los nonces automáticamente.
Configura Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps, Quota.AllocationLifetime para acotar el abuso. OnQuotaExceeded informa de los rechazos.
Cambia el transporte del servidor subyacente — UDP, TCP y TLS sobre TCP están soportados. Los clientes WebRTC eligen el que atraviesa su NAT.
Accede a la referencia del componente, descarga el proyecto demo listo para ejecutar y la versión de prueba.
| Ayuda en línea — TsgcTURNServer Referencia completa de propiedades, métodos y eventos de este componente. | Abrir | |
| Proyecto demo — Demos\35.P2P\03.TURN Proyecto de ejemplo listo para ejecutar. Se incluye dentro del paquete sgcWebSockets — descarga la prueba abajo. | Abrir | |
| Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias a fuentes primarias — solo este componente. | Abrir | |
| Manual de usuario (PDF) Manual completo que cubre cada componente de la biblioteca. | Abrir |