Para que a maioria dos aplicativos WebRTC funcione, é necessário um servidor para redirecionar o tráfego entre pares, uma vez que um soquete direto geralmente não é possível entre os clientes (a menos que eles residam na mesma rede local). A maneira comum de resolver isso é usando um servidor TURN. O termo significa "Travessia por redirecionamentos" em NAT e é um protocolo de redirecionamento de tráfego de rede.
Atualmente, há várias opções de servidores TURN disponíveis on-line, tanto como aplicativos auto-hospedados (como o projeto COTURN de código aberto) quanto como serviços fornecidos na nuvem.
Com um servidor TURN disponível on-line, você só precisa do RTCConfiguration
correto para que o aplicativo cliente possa usá-lo. O snippet de código a seguir ilustra uma configuração de amostra para um RTCPeerConnection
em que o servidor doTURN tem o nome do host my-turn-server.mycompany.com
e está sendo executado na porta 19403
. O objeto de configuração também é compatível com as propriedades username
e credential
para proteger o acesso ao servidor. Isso é necessário ao se conectar a um servidor TURN.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credential: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);