Para a maioria dos aplicativos WebRTC funcionarem, um servidor é necessário para retransmitir o tráfego entre os pontos, 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 Traversal Using Relay NAT e é um protocolo para retransmissão de tráfego de rede.
Atualmente, existem várias opções para servidores TURN disponíveis online, tanto como aplicativos auto-hospedados (como o projeto COTURN de código aberto) e como serviços fornecidos em nuvem.
Depois de ter um servidor TURN disponível online, tudo que você precisa é a RTCConfiguration
correta para seu aplicativo cliente usá-lo. O fragmento de código a seguir ilustra uma configuração de amostra para um RTCPeerConnection
que o servidor TURN tem o nome do host my-turn-server.mycompany.com
e está em execução na porta 19403
. O objeto de configuração também oferece suporte às propriedades de username
e credentials
para proteger o acesso ao servidor. Eles são necessários ao conectar-se a um servidor TURN.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credentials: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);