Cliente de teste WebSocket

Conecte-se a um WebSocket, envie mensagens e visualize mensagens enviadas e recebidas, status da conexão, o código de fechamento do WebSocket e o motivo do fechamento fornecido pelo servidor.

Insira um endereço ws:// ou wss:// completo. A conexão é iniciada somente quando você seleciona Conectar.
Insira um endereço WebSocket para conectar.Fechar código
Envia uma mensagem de texto. Pressione Ctrl+Enter ou Command+Enter para enviar.
Registro de mensagens
Enviado 0Recebido 0

Conecte-se e envie uma mensagem para iniciar o registro.

Nada é carregado no BroBroGo ou salvo por esta página. Seu endereço e mensagens vão diretamente do seu navegador para o servidor WebSocket que você escolher.

FAQ

Quais dados WebSocket posso inspecionar aqui?

Você pode ver cada mensagem de texto ou binária exposta pelo seu navegador, sua direção, hora e tamanho, além do código de fechamento final, motivo e status de fechamento limpo. As páginas do navegador não podem expor fragmentos de nível de rede ou quadros de controle Ping e Pong.

Por que uma conexão falha mesmo quando o endereço funciona em outro lugar?

Em uma página segura, o navegador pode exigir wss://. O servidor também deve aceitar conexões do navegador e a origem da página. Este cliente não pode adicionar cabeçalhos de handshake personalizados, ignorar erros de certificado ou substituir as regras de acesso do servidor.

Posso testar com produção ou dados confidenciais?

Use dados sintéticos sempre que possível. Remova nomes, detalhes de contas, registros legais, informações financeiras e informações de saúde antes de enviar. As mensagens vão para o servidor que você escolher, cujas regras de registro e retenção estão fora do controle desta página.

O papel dos WebSockets na comunicação em tempo real

O protocolo WebSocket, padronizado pela IETF, estabelece um canal de comunicação bidirecional e persistente sobre uma única conexão TCP. Diferente do modelo tradicional de requisição e resposta do HTTP, onde o cliente precisa iniciar cada interação, os WebSockets permitem que tanto o cliente quanto o servidor enviem dados a qualquer momento de forma assíncrona.

Essa arquitetura reduz drasticamente o overhead de cabeçalhos e elimina a necessidade de técnicas ineficientes como o polling longo. Desenvolvedores de APIs em tempo real, engenheiros de integração, profissionais de garantia de qualidade (QA) e equipes de operações (Ops) utilizam conexões WebSocket para viabilizar fluxos contínuos de dados. O teste manual de endpoints públicos e a observação direta do comportamento de mensagens e conexões são etapas fundamentais para validar a estabilidade dessas implementações.

Protocolos ws:// e wss:// e suas implicações de segurança

A especificação define dois esquemas de URI para identificar endpoints WebSocket:

  • ws://: Conexão não criptografada que opera, por padrão, na porta 80. É vulnerável a interceptações e modificações de dados no caminho de rede.
  • wss://: Conexão criptografada que utiliza Transport Layer Security (TLS), operando por padrão na porta 443.

A escolha do protocolo está diretamente ligada às regras de segurança do navegador. Em páginas web seguras (carregadas via HTTPS), os navegadores bloqueiam conexões ws:// devido a políticas de conteúdo misto (mixed content), exigindo obrigatoriamente o uso de wss://.

Este cliente de teste WebSocket suporta exclusivamente os esquemas ws:// ou wss://. Se outro esquema for inserido no campo de endereço, a ferramenta exibirá a mensagem: "Use um endereço ws:// ou wss://".

Ciclo de vida da conexão e tratamento de erros

O ciclo de vida de uma conexão WebSocket passa por estados bem definidos: conexão pendente, aberta, fechando e fechada. O cliente de teste WebSocket gerencia e exibe esses estados de forma transparente:

  1. Início: A conexão com o servidor WebSocket só começa quando você seleciona "Conectar".
  2. Tentativa: Durante a negociação inicial (handshake), a ferramenta exibe o status "Conectando ao ‹address›…".
  3. Sucesso: Quando a conexão é estabelecida com sucesso, o registro exibe "Conectado a ‹address›.".
  4. Tempo limite: Se o servidor não responder ao handshake dentro de 10 segundos, o processo é interrompido com o aviso: "O servidor não abriu a conexão em 10 segundos".
  5. Falha: Se a tentativa falhar por outros motivos, a ferramenta exibe: "A conexão falhou. Verifique o endereço, certificado, disponibilidade do servidor e regras de acesso ao navegador".

Validação de entradas e limites do endereço

Para garantir a estabilidade do navegador, o campo de endereço possui regras estritas de validação:

  • O endereço inserido deve ser completo. Caso contrário, o sistema exibe: "Insira um endereço WebSocket completo, como wss://example.com/socket".
  • O comprimento máximo permitido para o endereço é de 2.048 caracteres. Se esse limite for excedido, o erro apresentado é: "Esse endereço é excepcionalmente longo. Mantenha-o com caracteres 2,048".

Envio de mensagens e limites de dados

Uma vez conectado, o cliente permite o envio de mensagens de texto individuais para o servidor. O envio pode ser acionado pelo botão correspondente ou pelos atalhos de teclado Ctrl+Enter e Command+Enter.

Existem regras operacionais para o envio de dados:

  • Conexão ativa obrigatória: Se você tentar enviar uma mensagem sem uma conexão estabelecida, a ferramenta exibirá: "Conecte-se antes de enviar uma mensagem".
  • Limite de tamanho: O campo de mensagem suporta textos de até 100.000 caracteres. Caso tente enviar um volume maior, o sistema impede a operação com o aviso: "Essa mensagem é extraordinariamente grande. Mantenha-o com caracteres 100,000".

Interpretação do registro de mensagens e códigos de fechamento

O registro de mensagens exibe uma lista cronológica de eventos, mensagens enviadas e recebidas. Cada entrada é categorizada para facilitar a depuração:

  • Enviado: Identifica mensagens de texto originadas no cliente.
  • Recebido: Identifica mensagens recebidas do servidor.
  • Evento: Indica alterações no estado da conexão.
  • Texto: Identifica o conteúdo de mensagens de texto.
  • Mensagem binária: Identifica dados binários recebidos, exibindo o tamanho correspondente no formato "bytes".

Truncamento e gerenciamento de memória do log

Para manter a interface responsiva e evitar o travamento do navegador ao lidar com grandes volumes de dados, aplicam-se as seguintes regras de truncamento:

  • Limite de entradas: O registro retém no máximo 500 entradas. Quando esse limite é ultrapassado, as mensagens mais antigas são descartadas e a ferramenta exibe: "As entradas de log mais antigas do ‹count› foram removidas para manter esta página responsiva.".
  • Limite de caracteres por entrada: Cada mensagem exibida no log tem um limite de visualização de 20.000 caracteres. Mensagens maiores são truncadas com o aviso: "‹count› mais caracteres estão ocultos nesta visualização.".
  • Limpeza do log: A ação de limpar o registro remove apenas as mensagens exibidas na tela. Ela não fecha a conexão ativa e não zera os contadores de mensagens enviadas e recebidas.

Códigos e motivos de fechamento

Quando a conexão é encerrada, o protocolo WebSocket prevê a transmissão de um código numérico de fechamento e um motivo em formato de texto. O cliente exibe essas informações no formato: "Fechado com código ‹code› (‹clean›). Motivo: ‹reason›".

  • O status de fechamento é classificado como "limpar" (quando o handshake de fechamento foi concluído corretamente) ou "não limpo" (interrupções abruptas de rede).
  • Se o servidor fechar a conexão sem especificar um motivo, a ferramenta exibe: "Nenhuma razão fornecida".

Limitações da API do navegador e privacidade

Este cliente de teste opera inteiramente dentro do ambiente de execução do navegador do usuário. Por conta disso, ele herda as capacidades e as restrições de segurança impostas pelas APIs nativas dos navegadores modernos:

  • Sem cabeçalhos personalizados: Não é possível adicionar cabeçalhos HTTP personalizados (como tokens de autorização ou cookies específicos) para o handshake inicial.
  • Sem desvio de segurança: O cliente não pode ignorar erros de certificados SSL/TLS inválidos ou contornar regras de CORS e políticas de mesma origem do navegador.
  • Sem controle de baixo nível: O navegador não expõe fragmentos de pacotes de nível de rede, nem permite o envio ou visualização manual de quadros de controle Ping e Pong, que são gerenciados de forma automática pelo navegador.

Política de processamento de dados

A privacidade dos dados é mantida pela arquitetura da ferramenta. Nenhum dado é carregado nos servidores do BroBroGo ou salvo externamente. O endereço do servidor e as mensagens trafegam diretamente do seu navegador para o endpoint WebSocket configurado.


Perguntas frequentes

Quais dados WebSocket posso inspecionar aqui?

Você pode ver cada mensagem de texto ou binária exposta pelo seu navegador, sua direção, hora e tamanho, além do código de fechamento final, motivo e status de fechamento limpo. As páginas do navegador não podem expor fragmentos de nível de rede ou quadros de controle Ping e Pong.

Por que uma conexão falha mesmo quando o endereço funciona em outro lugar?

Em uma página segura, o navegador pode exigir wss://. O servidor também deve aceitar conexões do navegador e a origem da página. Este cliente não pode adicionar cabeçalhos de handshake personalizados, ignorar erros de certificado ou substituir as regras de acesso do servidor.

Posso testar com produção ou dados confidenciais?

Use dados sintéticos sempre que possível. Remova nomes, detalhes de contas, registros legais, informações financeiras e informações de saúde antes de enviar. As mensagens vão para o servidor que você escolher, cujas regras de registro e retenção estão fora do controle desta página.

O que acontece se eu limpar o registro de mensagens durante uma conexão ativa?

A limpeza do registro apenas remove as mensagens exibidas na tela para organizar a visualização. Essa ação não fecha a conexão ativa com o servidor e não reinicia os contadores de mensagens enviadas e recebidas.