Servidor turn

Para que la mayoría de las aplicaciones de WebRTC funcionen, se requiere un servidor para retransmitir el tráfico entre pares, ya que, a menudo, no es posible establecer un socket directo entre los clientes (a menos que residan en la misma red local). La forma común de resolver esto es con un servidor TURN. El término significa recorrido con retransmisión a través de NAT y es un protocolo para retransmitir el tráfico de red.

Actualmente, hay varias opciones de servidores TURN disponibles en línea, tanto como aplicaciones alojadas por el usuario (como el proyecto de código abierto COTURN) como servicios proporcionados por la nube.

Una vez que tengas un servidor TURN disponible en línea, todo lo que necesitas es el RTCConfiguration correcto para que tu aplicación cliente lo use. En el siguiente fragmento de código, se ilustra una configuración de muestra para un RTCPeerConnection en el que el servidor TURN tiene el nombre de host my-turn-server.mycompany.com y se ejecuta en el puerto 19403. El objeto de configuración también admite las propiedades username y credential para proteger el acceso al servidor. Estos son obligatorios cuando te conectas a un servidor TURN.

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

const peerConnection = new RTCPeerConnection(iceConfiguration);