
Sinalização
glossary.categories.technicalO processo de coordenar a comunicação entre pares WebRTC antes de estabelecer uma conexão
O que é Sinalização?
Sinalização é o processo pelo qual dois pares WebRTC trocam as informações necessárias para estabelecer uma conexão peer-to-peer direta. Antes que qualquer áudio, vídeo ou dado possa fluir entre navegadores, eles precisam concordar sobre parâmetros como codecs, resolução, endereços de rede e chaves de criptografia.
O WebRTC deliberadamente não especifica como a sinalização deve funcionar — ele deixa essa escolha para o desenvolvedor. Isso significa que você pode usar WebSockets, HTTP, ou qualquer outro mecanismo de transporte para sinalização.
O que é Trocado na Sinalização
- Ofertas e Respostas SDP: Descrevendo capacidades de mídia (codecs suportados, resoluções, etc.)
- Candidatos ICE: Endereços de rede potenciais para conexão (IPs locais, IPs públicos, endereços de relay)
- Estado da Sessão: Informações sobre iniciar, pausar ou encerrar a chamada
Fluxo Típico de Sinalização
- Par A cria uma oferta SDP usando
createOffer() - Par A define essa oferta como sua descrição local
- Par A envia a oferta ao Par B via o servidor de sinalização
- Par B recebe a oferta e a define como descrição remota
- Par B cria uma resposta SDP usando
createAnswer() - Par B envia a resposta de volta ao Par A
- Simultaneamente, ambos os pares trocam candidatos ICE
- O ICE encontra o melhor caminho de conexão e a mídia começa a fluir
Transportes de Sinalização Comuns
- WebSocket: A escolha mais popular — bidirecional, tempo real, baixa latência
- HTTP/REST: Mais simples de implementar, mas requer polling ou Server-Sent Events
- SIP sobre WebSocket: Usado ao fazer bridge com redes VoIP legadas
Referências
- Signaling and video calling - WebRTC API - Mozilla Developer Network