O que é SockJS?

SockJS é uma biblioteca JavaScript de código aberto que fornece uma API semelhante a WebSocket com fallback transparente para transportes alternativos quando WebSocket não está disponível. Foi projetada para ambientes onde conexões WebSocket são bloqueadas — por exemplo, por firewalls corporativos, navegadores mais antigos ou balanceadores de carga que não suportam atualizações de conexão. SockJS negocia automaticamente o melhor transporte disponível, escolhendo entre WebSocket, HTTP streaming, HTTP long-polling e vários outros mecanismos.

SockJS requer uma biblioteca compatível no lado do servidor (como SockJS-Node ou suporte SockJS do Spring) e usa seu próprio subprotocolo, portanto não pode se conectar a um endpoint WebSocket simples.

Descrição da ferramenta

Esta ferramenta fornece um cliente SockJS baseado em navegador. Digite a URL de um endpoint de servidor SockJS, conecte-se, componha mensagens de texto e observe todo o tráfego em um log de mensagens com timestamp. O nome do transporte ativo (por exemplo, websocket, xhr-streaming, xhr-polling) é exibido em tempo real para que você possa ver qual mecanismo de fallback a biblioteca selecionou.

Recursos

  • Negociação automática de transporte — conecta-se com o melhor transporte disponível e mostra qual foi selecionado.
  • Log de mensagens ao vivo — todas as mensagens recebidas e eventos de conexão são capturados com timestamps para inspeção fácil.
  • Modos texto e JSON — escreva payloads como texto simples ou JSON estruturado com destaque de sintaxe e validação.

Opções explicadas

URL do servidor — a URL HTTP(S) do endpoint SockJS (por exemplo, https://example.com/sockjs). Não adicione /websocket ou nenhum sufixo de transporte; SockJS lida com a negociação de caminho internamente.

Transporte — exibido na área de saída após a conexão ser aberta. Os valores comuns incluem websocket (atualização direta bem-sucedida), xhr-streaming (streaming sobre XHR) e xhr-polling (long-poll tradicional). Este campo permanece em branco até que a conexão seja estabelecida.

Tipo de dados — alterne entre os modos de composição Texto e JSON. O modo JSON valida o payload antes de enviar.

Auto-scroll — mantém o log de mensagens fixado na entrada mais recente.

Como funciona

O cliente usa a biblioteca JavaScript SockJS para abrir uma conexão com o servidor de destino. SockJS executa uma solicitação de informações ao servidor para descobrir quais transportes são suportados e negocia a melhor opção. Uma vez conectado, a ferramenta retransmite todas as mensagens de saída através do método SockJS send e registra cada evento onmessage retornado pelo servidor.

Dicas

  • Servidores SockJS normalmente expõem seu endpoint em um caminho como /sockjs ou /ws. Verifique a documentação do servidor para a URL base correta.
  • Se o transporte mostrar xhr-polling em vez de websocket, o servidor ou proxy pode estar bloqueando atualizações de WebSocket.
  • SockJS não é compatível com endpoints WebSocket simples. Use o Cliente de Teste WebSocket para servidores WebSocket padrão.