Serveur TURN

Pour que la plupart des applications WebRTC fonctionnent, un serveur est nécessaire pour relayer le trafic entre les pairs, car un socket direct n'est souvent pas possible entre les clients (sauf s'ils se trouvent sur le même réseau local). La méthode courante pour résoudre ce problème consiste à utiliser un serveur TURN. Il s'agit d'un protocole de transfert de trafic réseau qui signifie "Traversal Using Relays around NAT".

Plusieurs options de serveurs TURN sont actuellement disponibles en ligne, à la fois en tant qu'applications auto-hébergées (comme le projet COTURN Open Source) et en tant que services fournis par le cloud.

Une fois qu'un serveur TURN est disponible en ligne, il vous suffit de disposer de la RTCConfiguration appropriée pour que votre application cliente puisse l'utiliser. L'extrait de code suivant illustre un exemple de configuration pour un RTCPeerConnection où le serveur TURN a l'hôte my-turn-server.mycompany.com et s'exécute sur le port 19403. L'objet de configuration accepte également les propriétés username et credential pour sécuriser l'accès au serveur. Ils sont obligatoires lors de la connexion à un serveur TURN.

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

const peerConnection = new RTCPeerConnection(iceConfiguration);