Pular para o conteúdo

Testador de WebSocket

WebSocket Tester

Abre uma conexão WebSocket, envia os frames que você compuser e registra tudo o que recebe com os tempos.

Abre um WebSocket do seu navegador para um servidor que você indica, envia o que você digita e registra cada frame nas duas direções com tempos. A conexão é do próprio navegador — nada passa pelo nosso servidor, então um endpoint de desenvolvimento na sua máquina funciona igual a um público.

🔒 Roda inteiramente no seu navegadorwebsockettestrealtimedebug

Quem faz a conexão é o seu próprio navegador. Nem o endereço nem nada que se envia ou se recebe passa pelo nosso servidor.

Esta página é servida por https, então o navegador bloqueia ws:// sem criptografia como conteúdo misto. Use wss://, ou abra o seu servidor de desenvolvimento por http local.

Separados por vírgulas. São oferecidos no cabeçalho Sec-WebSocket-Protocol e o servidor escolhe um.

Um navegador só pode enviar 1000 ou 3000–4999 (RFC 6455 §7.4).

Parado

Enviar

Log

Os quadros recebidos são ▼ e os enviados ▲. Os tempos são contados a partir da primeira entrada.

Nada ainda.

  • A API WebSocket do navegador não consegue enviar quadros ping ou pong por conta própria, nem anexar cabeçalhos próprios. Quando é preciso autenticar, o costume é um token na primeira mensagem, na query da URL, ou como subprotocolo.

Como usar

  1. Digite um endereço wss://

    Esta página é servida por https, então o navegador bloqueia ws:// puro como conteúdo misto. Um subprotocolo pode ser oferecido junto; o servidor escolhe um e o log diz qual.

  2. Envie um frame

    JSON válido é compactado em uma linha antes de ser enviado, então uma mensagem colada com indentação sai como um cliente a enviaria. Qualquer coisa que não seja JSON sai como foi digitada.

  3. Leia o log por direção e tempo

    Frames recebidos são ▼, enviados são ▲, eventos são ●, e cada um traz o tempo decorrido desde a primeira entrada. É assim que você distingue um servidor que nunca respondeu de um que respondeu devagar.

  4. Feche com um código quando precisar de um

    Um navegador só pode enviar 1000 ou 3000–4999 (RFC 6455 §7.4), então a faixa definida pela aplicação é onde vão os seus próprios códigos. O código de fechamento que volta é explicado em palavras.

Perguntas frequentes

Posso adicionar um cabeçalho Authorization?

De um navegador, não — a API WebSocket não permite nenhum cabeçalho personalizado. As convenções são um token na primeira mensagem, na query da URL, ou contrabandeado como subprotocolo; qual usar depende do servidor.

Fechou com 1006 e sem motivo

1006 significa que a conexão caiu sem frame de fechamento — o servidor travou, um proxy estourou o tempo, ou o handshake foi rejeitado. Os navegadores omitem o motivo de propósito, por segurança, então a resposta está no log do servidor, não aqui.

Posso enviar um frame de ping?

Não. Os navegadores respondem a pings automaticamente e não dão à página um jeito de enviar um. Aplicações que precisam de heartbeat enviam uma mensagem comum e contam com a resposta do servidor.

Meu tráfego passa pelo servidor de vocês?

Não. O navegador se conecta diretamente, então o endereço e cada frame ficam entre você e aquele servidor. Isso também significa que um endpoint em localhost funciona aqui, coisa que um testador do lado do servidor nunca alcançaria.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.