Para que a maioria dos aplicativos WebRTC funcione, é necessário um servidor para retransmitir o tráfego entre pares, já que um soquete direto geralmente não é possível entre os clientes, a menos que eles estejam na mesma rede local. A maneira comum de resolver isso é usando um servidor TURN. O termo significa Traversal Using Relays around NAT, e é um protocolo para retransmitir o tráfego de rede.
Atualmente, há várias opções de servidores TURN disponíveis on-line, como aplicativos auto-hospedados (como o projeto de código aberto COTURN) e serviços fornecidos pela nuvem.
Depois de ter um servidor TURN disponível on-line, tudo o que você precisa é do
RTCConfiguration
correto para que o aplicativo cliente o use. O snippet de código
a seguir ilustra uma configuração de amostra para um RTCPeerConnection
em 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 username
e
credential
para proteger o acesso ao servidor. Eles são
necessários 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);