Visualizador de eventos SSE

Cole uma resposta text/event-stream capturada e selecione um evento para ver seus campos. O visualizador analisa texto sem abrir uma conexão ao vivo.

Funciona localmente no seu navegador
O visualizador analisa apenas texto colado. Ele não se conecta a endpoints nem envia dados.
Texto do fluxo SSECole quadros text/event-stream separados por linhas vazias

Inspecione quadros sem abrir uma conexão

Cole uma resposta text/event-stream capturada para depurar campos e despacho. Autenticação, reconexão, cache HTTP e saúde da conexão ainda devem ser testados no cliente e servidor.

Como inspecionar um fluxo SSE capturado

Cole uma resposta text/event-stream capturada e clique em Analisar eventos. O visualizador divide o texto em eventos e mostra o nome do evento, o ID que o navegador informaria, o valor de retry e os dados dobrados de cada um; cargas que são JSON válido são decodificadas no painel de detalhes, e o fluxo inteiro pode ser copiado como NDJSON.

A análise segue as regras que um navegador aplica a um fluxo EventSource: uma trama que aparece aqui é uma trama que será entregue no seu cliente, e um bloco descartado aqui também é descartado no navegador. Tudo roda na página: nenhuma conexão é aberta e nenhum texto capturado é enviado.

  1. Cole a captura na caixa de texto do fluxo SSE.
  2. Clique em Analisar eventos. A tabela lista cada evento entregue; um fluxo que nunca fecha um bloco com uma linha vazia não gera eventos, igual a uma conexão truncada.
  3. Clique em uma linha para ver a carga completa desse evento, incluindo o JSON decodificado.
  4. Use Copiar NDJSON para levar todos os eventos para fora da página, ou Limpar para reiniciar o ambiente.

Campos, IDs e momento de entrega

O que o analisador lê

Os nomes dos campos são comparados literalmente: data, event, id e retry. Um espaço depois dos dois-pontos é removido, então “data:x” e “data: x” têm o mesmo valor, enquanto “data: x” mantém um espaço inicial. Uma linha sem dois-pontos é um nome de campo com valor vazio, então uma linha “data” sozinha acrescenta uma linha vazia à carga, e campos desconhecidos são ignorados.

Cada linha data é acrescentada com um caractere de nova linha; a carga dobrada mantém essas quebras e perde a última na entrega. Comentários começam com dois-pontos e nunca entregam um evento; o contador mostra quantos existiam.

IDs, retries e momento de entrega

Um evento só é entregue quando uma linha vazia encerra o bloco. O último bloco incompleto do texto é descartado, que é o que o navegador faz com um fluxo que termina no meio de um evento; acrescente a linha vazia que falta para vê-lo. O campo id define o último ID imediatamente, então um evento posterior sem id carrega o mesmo valor, e um “id:” vazio o apaga. Um ID com caractere NUL é ignorado. Só o nome do evento recorre a “message”.

retry só é aceito quando o valor contém apenas dígitos; a métrica mostra o último valor aceito, que é o tempo de reconexão que um cliente usaria pelo resto do fluxo. O visualizador não mede quanto o servidor demorou nem se a reconexão aconteceu.

O que esta página não faz

O visualizador lê texto. Ele não abre uma conexão EventSource, não envia cabeçalhos, não autentica, não segue redirecionamentos nem testa como um servidor se comporta sob carga, e não sabe se a captura está completa. A detecção de JSON é uma análise estrita da carga dobrada, então “data: [DONE]” continua texto simples enquanto “data: null” conta como JSON decodificado.

A tabela de eventos mostra os primeiros 180 caracteres de cada carga; o painel de detalhes e a cópia NDJSON contêm os dados completos. Capturas longas são analisadas na página, então um texto muito grande depende da memória do dispositivo, não de uma cota do servidor.

Ferramentas recentes: