Integração e API
WebSocket
Diferentemente do polling HTTP, WebSocket mantém uma conexão bidirecional persistente após um handshake e permite que cliente e servidor enviem mensagens a qualquer momento. Padronizado pela RFC 6455, usa normalmente ws:// ou wss:// nas portas 80 e 443. É adequado a estados ao vivo, câmeras, painéis e eventos do Home Assistant. Uma conexão aberta reduz latência, mas exige keepalive, reconexão, autenticação e controle de backpressure.
🔀 Tipos de Comunicação
Upgrade
Handshake HTTP
A sessão começa como requisição HTTP com Upgrade e muda para o protocolo WebSocket quando o servidor aceita.
Duplex
Canal bidirecional
Cliente e servidor enviam frames de texto ou binários independentemente, sem nova requisição para cada mensagem.
Persistente
Conexão persistente
Uma única sessão permanece ativa por minutos ou horas e usa ping/pong para detectar falhas silenciosas.
WSS
Transporte seguro
WSS encapsula WebSocket em TLS e protege credenciais, estados e comandos contra interceptação na rede.
✅ Vantagens Arquiteturais
⚡
Baixa latência
Mudanças de estado chegam sem aguardar o próximo ciclo de polling, melhorando painéis e comandos interativos.
⚡
Comunicação nos dois sentidos
O mesmo canal transporta eventos do servidor e solicitações do cliente, reduzindo conexões paralelas.
⚡
Menor overhead repetitivo
Após o handshake, frames têm cabeçalho menor que requisições HTTP completas sucessivas.
⚡
Suporte a dados binários
Telemetria compacta, áudio, metadados ou protocolos próprios podem usar frames binários.