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);