# WebSocket notifications: guia prático de implementação

> WebSocket notifications são um mecanismo de comunicação bidirecional em tempo real entre cliente e servidor, usado para entregar alertas instantâneos sem polling. A implementação exige autenticação na conexão, tratamento de reconexão automática e estratégia para mensagens perdidas durante quedas, garantindo entrega confiável mesmo com instabilidade de rede.

*Net Propaganda · Apps e Software · 15 de setembro de 2026 · Sirley Mancuso Galvão*

Implementar WebSocket notifications exige mais do que abrir uma conexão. Este guia mostra o passo a passo real: autenticar, tratar reconexão e evitar o erro clássico de ignorar mensagens offline.

A maioria dos tutoriais de WebSocket notifications ensina a abrir a conexão e para por aí. O problema aparece depois: usuário fecha a aba, volta, e a notificação que deveria ter chegado sumiu. Implementar de verdade significa cobrir o ciclo inteiro, do handshake à reconexão.

Para implementar WebSocket notifications, abra uma conexão persistente entre cliente e servidor, autentique o usuário no handshake, escute eventos no servidor e emita mensagens para o cliente. Trate reconexão com backoff exponencial e mantenha um fallback para mensagens perdidas enquanto o usuário estava offline.

## Passo 1: Estabeleça a conexão e autentique no handshake

No servidor, aceite a conexão e valide o token do usuário antes de registrar o socket. No cliente, use new WebSocket('wss://...') e envie o token no primeiro frame ou via query string.

Erro comum: autenticar depois de aceitar qualquer conexão. Isso abre espaço para sockets anônimos consumindo memória. Valide na entrada.

## Passo 2: Defina o formato da mensagem

Padronize um envelope com type, payload e timestamp. O cliente decide o que renderizar com base no type, não no texto.

Dica: versione o formato desde o início. Quando você adicionar um novo tipo de notificação, clientes antigos ignoram sem quebrar.

## Passo 3: Trate reconexão e mensagens offline

WebSocket cai. Rede instável, aba em background, servidor reiniciando. Implemente reconexão com backoff exponencial e, ao reconectar, peça ao servidor as notificações não entregues desde o último timestamp conhecido.

Sem isso, o usuário perde o evento e você perde a confiança dele no sistema.

## Passo 4: Escale com cuidado

Um servidor único funciona em desenvolvimento. Em produção, com múltiplas instâncias, use um broker (Redis Pub/Sub, por exemplo) para distribuir eventos entre os nós. Cada instância mantém seus sockets e escuta o canal comum.

## Checklist rápido

- Conexão autenticada no handshake
- Envelope de mensagem padronizado e versionado
- Reconexão com backoff exponencial
- Recuperação de mensagens offline por timestamp
- Broker para múltiplas instâncias

## FAQ

### WebSocket é obrigatório para notificações push?

Não. Push notifications no navegador usam a Push API com service workers, que funcionam mesmo com a aba fechada. WebSocket serve para notificações em tempo real enquanto o usuário está com a página aberta. Os dois podem coexistir.

### Posso usar SSE em vez de WebSocket?

Sim, se a comunicação for só servidor para cliente. SSE é mais simples e reconecta sozinho. WebSocket vale quando você precisa de canal bidirecional, como chat ou confirmação de leitura.

### Como testar reconexão localmente?

Derrube o servidor com Ctrl+C e observe o cliente. Se ele não tentar reconectar em alguns segundos, seu backoff não está implementado. Simule também perda de rede no DevTools.

### Preciso de HTTPS para WebSocket?

Em produção, sim. Use wss:// (WebSocket sobre TLS). Navegadores bloqueiam ws:// em páginas HTTPS por mixed content.

### Quantas conexões um servidor aguenta?

Depende de memória e file descriptors. Um servidor Node.js bem configurado lida com dezenas de milhares de conexões ociosas, mas o número cai conforme o tráfego de mensagens aumenta. Meça antes de prometer escala.

---

Fonte (canonical): https://netpropaganda.com.br/apps-e-software/websocket-notifications-guia-pratico-de-implementacao/
