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 usar 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 "transversal mediante relés" y es un protocolo para retransmitir tráfico de red.

En la actualidad, existen varias opciones para servidores TURN disponibles en línea, tanto como aplicaciones autoalojadas (como el proyecto de código abierto COTURN) y como servicios proporcionados en la nube.

Una vez que tengas un servidor TURN disponible en línea, todo lo que necesitas es el RTCConfiguration correcto para que lo use la aplicación cliente. 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);