Testador de WebSocket
Conecte a qualquer endpoint ws:// ou wss://, envie/receba mensagens ao vivo, veja histórico completo com timestamps. Para debug de chat, subs GraphQL, MQTT-sobre-WS.
Testador de WebSocket - Testar Conexões WebSocket em Tempo Real
WebSocket é o protocolo que finalmente deu aos navegadores comunicação bidirecional em tempo real, padronizado em 2011 como RFC 6455 e agora onipresente: todo app de chat moderno, widget de esportes ao vivo, editor colaborativo (Figma, Google Docs), feed de cotações de trading, subscription GraphQL, lobby de jogo multiplayer, e a maioria dos sistemas de notificação em tempo real rodam sobre ele. Diferente do ciclo request-response HTTP, uma conexão WebSocket fica aberta após o handshake inicial, deixa qualquer parte enviar um frame a qualquer momento, e sobrevive a proxies e firewalls corporativos porque começa como um request HTTP Upgrade regular antes de trocar protocolos. Depurar apps WebSocket é mais difícil que depurar HTTP — a aba network do DevTools mostra o handshake mas é pobre visualizando o stream de mensagens ao longo do tempo. Este testador preenche essa lacuna. Digite qualquer URL ws:// ou wss://, clique em Conectar, e você tem um canal ao vivo persistente: envie mensagens text ou JSON arbitrárias com o botão Enviar, veja cada frame enviado pelo servidor aparecer em tempo real com timestamp preciso, e identifique direção da mensagem (enviado/recebido/eventos sistema como open/close/error) por cor no log. Útil para brincar com echo.websocket.org durante um tutorial, validar que o loop broadcast do seu backend realmente alcança clientes conectados, reproduzir race conditions, ou observar o tráfego heartbeat de um serviço com o qual está integrando.
O que é um WebSocket?
WebSocket é um protocolo que fornece canais de comunicação full-duplex sobre uma única conexão TCP. Ao contrário do HTTP, que é baseado em requisição-resposta, o WebSocket permite:
- Comunicação bidirecional em tempo real
- Conexão persistente entre cliente e servidor
- Menor latência que polling
- Eficiente para aplicações em tempo real
Usos comuns:
- Aplicações de chat
- Feeds ao vivo e notificações
- Jogos em tempo real
- Edição colaborativa
- Placares de esportes ao vivo
- Tickers de ações
URLs WebSocket usam ws:// (inseguro) ou wss:// (seguro com TLS).
Como testo um WebSocket?
Testar um WebSocket é simples:
1. Digite a URL do WebSocket (ws:// ou wss://)
2. Clique em 'Conectar' para estabelecer conexão
3. Aguarde o status 'Conectado'
4. Digite uma mensagem no campo de mensagem
5. Clique em 'Enviar' para enviar a mensagem
6. Veja as respostas no histórico de mensagens
7. Clique em 'Desconectar' quando terminar
Servidores WebSocket de exemplo para teste:
- ws://echo.websocket.org (ecoa mensagens de volta)
- wss://echo.websocket.org (eco seguro)
O histórico de mensagens mostra todas as mensagens enviadas e recebidas com marcações de tempo.
Qual é a diferença entre ws:// e wss://?
ws:// e wss:// são semelhantes a http:// e https://:
ws:// (WebSocket):
- Conexão não criptografada
- Usa porta 80 por padrão
- Dados são transmitidos em texto simples
- Menos seguro
- Bom para desenvolvimento local
wss:// (WebSocket Seguro):
- Conexão criptografada usando TLS/SSL
- Usa porta 443 por padrão
- Dados são criptografados
- Mais seguro
- Necessário para sites HTTPS
- Recomendado para produção
Navegadores modernos exigem wss:// quando a página web é servida via HTTPS.
Por que não consigo conectar a alguns servidores WebSocket?
Falhas de conexão podem ocorrer por vários motivos:
1. CORS/Segurança: Servidor não permite conexões de navegadores
2. Autenticação: Servidor requer cabeçalhos de autenticação
3. SSL/TLS: Conteúdo misto (ws:// em página HTTPS)
4. Servidor Inativo: Servidor WebSocket está offline
5. Firewall: Firewall de rede bloqueia WebSocket
6. URL Inválida: Formato de URL ou porta errada
Solução de problemas:
- Verifique o formato da URL (ws:// ou wss://)
- Use wss:// em páginas HTTPS
- Verifique se o servidor está rodando
- Verifique as configurações CORS do servidor
- Tente echo.websocket.org para teste
- Verifique o console do navegador para erros

Que tipos de dados posso enviar?
Este testador de WebSocket envia mensagens de texto. WebSocket suporta:
Mensagens de Texto:
- Texto simples
- Strings JSON
- Strings XML
- Qualquer formato de string
Mensagens Binárias:
- ArrayBuffer
- Blob
- Dados de arquivo
(Não suportado neste testador simples)
Formatos comuns:
- JSON: {"type": "message", "text": "Olá"}
- Texto simples: "Olá, Mundo!"
- Comandos: "/join sala123"
A maioria das APIs WebSocket espera formato JSON para comunicação de dados estruturados.
Como WebSocket difere de Server-Sent Events (SSE) e long-polling?
Todos os três entregam pushes do servidor para o navegador sem polling, mas com tradeoffs diferentes. (1) WebSocket: full duplex (ambos os lados falam a qualquer momento), baixo overhead por mensagem (header de frame 2-14 bytes), payloads arbitrários text ou binário, protocolo de aplicação personalizado. Melhor para chat, jogos multiplayer, edição colaborativa — qualquer coisa verdadeiramente interativa. (2) Server-Sent Events: somente uma via (servidor → cliente), API mais simples (EventSource em navegadores), reconexão automática, somente text UTF-8 puro. Melhor para feeds ao vivo onde o cliente nunca fala de volta: preços de ações, tickers de notícias, streaming de logs de servidor. SSE vai sobre HTTP/2 puro então é mais amigável com proxies intermediários. (3) Long-polling: o cliente faz uma requisição HTTP que o servidor segura aberta até dados chegarem, depois reabre imediatamente. Maior latência e overhead mas funciona em todo lugar porque é HTTP puro. Apps modernos defaultam para WebSocket; caem para SSE para feeds unidirecionais; long-polling só importa para ambientes legacy sem suporte adequado a proxy.
Qual o tamanho máximo de mensagem e taxa que posso passar por um WebSocket?
O protocolo em si permite frames até 2^63 bytes — efetivamente ilimitado. Os limites reais vêm do seu stack runtime. Navegadores limitam mensagens individuais em cerca de 64 MB antes de avisar ou desconectar; o sweet spot prático para mensagens em nível de aplicação é abaixo de 1 MB para evitar engasgar event loops JavaScript single-thread. Biblioteca 'ws' do Node.js defaulta para 100 MB máximo mas é configurável. Para taxa, hardware moderno sustenta 100.000+ mensagens pequenas por segundo por conexão WebSocket no localhost, caindo para milhares/seg através da internet pública dependendo do RTT. Se você precisa de throughput maior, agrupe pequenas atualizações em mensagens periódicas maiores (ex. cadência 16ms para clientes 60fps), use framing binário (ArrayBuffer) em vez de JSON para pular parsing de string, e considere WebTransport (o sucessor baseado em HTTP/3 projetado para streams unreliable de baixa latência) para tráfego estilo jogo. Evite enviar blobs massivos base64-encoded sobre WebSocket; use um upload HTTP separado e sinalize completude sobre o socket.
Meus dados estão seguros?
Considerações de privacidade e segurança:
- Todas as conexões vão diretamente do seu navegador para o servidor WebSocket
- Nenhum dado passa pelos nossos servidores
- Não registramos ou armazenamos nenhuma mensagem
- Use wss:// para conexões criptografadas
- Evite enviar dados sensíveis para servidores não confiáveis
- Servidores de teste podem registrar suas mensagens
Melhores práticas:
- Use wss:// em produção
- Não envie senhas ou dados sensíveis para servidores de teste públicos
- Verifique a autenticidade do servidor
- Use autenticação quando necessário
- Teste com dados fictícios quando possível
Recursos Principais
- Conecte a qualquer servidor WebSocket (ws:// ou wss://)
- Envie mensagens de texto em tempo real
- Receba mensagens instantaneamente
- Veja o histórico completo de mensagens
- Marcação de tempo para cada mensagem
- Tipos de mensagem codificados por cor (enviada/recebida/sistema)
- Indicador de status de conexão
- Desconecte e reconecte facilmente
- Limpar histórico de mensagens
- Copiar mensagens para área de transferência
- Suporte a modo escuro
- 100% do lado do cliente - conexão direta navegador-para-servidor
- Sem registro ou armazenamento de dados
- Design responsivo para celular
