TURN-Server

Damit die meisten WebRTC-Anwendungen auf einem Server ausgeführt werden können, ist für die Weiterleitung des Traffics zwischen Peers erforderlich, da ein direkter Socket häufig nicht zwischen den Clients möglich ist (es sei denn, sie befinden sich im selben lokalen Netzwerk). Die gängigste Lösung ist ein TURN-Server. Der Begriff steht für TraversalMit Relays in der NAT und ist ein Protokoll zum Weiterleiten von Netzwerk-Traffic.

Aktuell sind verschiedene Optionen für TURN-Server verfügbar, sowohl als selbst gehostete Anwendungen wie das Open-Source-COTURN-Projekt als auch in der Cloud bereitgestellte Dienste.

Sobald Sie einen TURN-Server online haben, müssen Sie nur die richtige RTCConfiguration für Ihre Clientanwendung verwenden. Das folgende Code-Snippet zeigt eine Beispielkonfiguration für eine RTCPeerConnection, bei der der TURN-Server den Hostnamen my-turn-server.mycompany.com hat und an Port 19403 ausgeführt wird. Das Konfigurationsobjekt unterstützt auch die Attribute username und credential, um den Zugriff auf den Server zu sichern. Diese sind beim Herstellen einer Verbindung zu einem TURN-Server erforderlich.

const iceConfiguration = {
    iceServers: [
        {
            urls: 'turn:my-turn-server.mycompany.com:19403',
            username: 'optional-username',
            credential: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);