Serwer TURN

Większość aplikacji WebRTC musi działać z serwerem, aby przekazywać ruch między kolegami, ponieważ bezpośrednie połączenie między klientami nie jest zwykle możliwe (chyba że znajdują się w tej samej sieci lokalnej). Typowym sposobem rozwiązania tego problemu jest użycie serwera TURN. Termin oznacza ruch z sieci NAT i reprezentuje usługi przekaźnika.

Obecnie dostępnych jest kilka opcji serwerów TURN dostępnych online, zarówno w przypadku własnych aplikacji (np. projektu COTURN typu open source), jak i usług w chmurze.

Gdy serwer TURN będzie dostępny online, potrzebujesz tylko RTCConfiguration do poprawnego użycia aplikacji klienckiej. Poniższy fragment kodu ilustruje przykładową konfigurację dla RTCPeerConnection, w której serwer TURN ma nazwę hosta my-turn-server.mycompany.com i działa na porcie 19403. Obiekt konfiguracji obsługuje też właściwości username i credential umożliwiające zabezpieczenie dostępu do serwera. Są one wymagane podczas nawiązywania połączenia z serwerem TURN.

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

const peerConnection = new RTCPeerConnection(iceConfiguration);