Visor de eventos SSE

Pega una respuesta text/event-stream capturada y selecciona un evento para revisar sus campos. El visor analiza texto sin abrir una conexión en directo.

Se ejecuta localmente en tu navegador
El visor solo analiza texto pegado. No se conecta a endpoints ni envía datos.
Texto del flujo SSEPega tramas text/event-stream separadas por líneas vacías

Inspecciona tramas sin abrir una conexión

Pega una respuesta text/event-stream capturada para depurar campos y despacho. Autenticación, reconexión, caché HTTP y salud de la conexión deben probarse en cliente y servidor.

Cómo revisar un flujo SSE capturado

Pega una respuesta text/event-stream capturada y pulsa Analizar eventos. El visor la divide en eventos y muestra el nombre del evento, el ID que informaría un navegador, el valor de retry y los datos plegados de cada uno; las cargas que son JSON válido se decodifican en el panel de detalle, y el flujo completo puede copiarse como NDJSON.

El análisis sigue las reglas que aplica un navegador a un flujo EventSource, así que una trama que aparece aquí es una trama que se entregará en tu cliente, y un bloque descartado aquí también se descarta en el navegador. Todo se ejecuta en la página: no se abre ninguna conexión ni se sube el texto capturado.

  1. Pega la captura en el cuadro de texto del flujo SSE.
  2. Pulsa Analizar eventos. La tabla lista cada evento entregado; un flujo que nunca cierra un bloque con una línea vacía no produce eventos, igual que una conexión truncada.
  3. Haz clic en una fila para ver la carga completa de ese evento, incluido su JSON decodificado.
  4. Pulsa Copiar NDJSON para sacar todos los eventos de la página, o Limpiar para reiniciar el banco de trabajo.

Campos, ID y momento de entrega

Qué lee el analizador

Los nombres de campo se comparan literalmente: data, event, id y retry. Se elimina un espacio después de los dos puntos, así que «data:x» y «data: x» llevan el mismo valor, mientras que «data: x» conserva un espacio inicial. Una línea sin dos puntos es un nombre de campo con valor vacío, de modo que una línea «data» sola añade una línea vacía a la carga, y los campos desconocidos se ignoran.

Cada línea data se añade con un salto de línea; la carga plegada conserva esos saltos y pierde el último al entregarse. Los comentarios empiezan por dos puntos y nunca entregan un evento; el contador indica cuántos había.

ID, reintentos y momento de entrega

Un evento solo se entrega cuando una línea vacía cierra su bloque. El último bloque sin terminar de lo pegado se descarta, que es lo que hace un navegador con un flujo que acaba a mitad de evento; añade la línea vacía que falta si quieres verlo. El campo id fija el último ID de evento de inmediato, así que un evento posterior sin id lleva el mismo valor, y un «id:» vacío lo borra. Un ID con un carácter NUL se ignora. Solo el nombre del evento recurre a «message».

retry solo se acepta cuando el valor son dígitos; la métrica muestra el último valor aceptado, que es el tiempo de reconexión que usaría un cliente durante el resto del flujo. El visor no mide cuánto tardó el servidor ni si la reconexión llegó a ocurrir.

Lo que esta página no hace

El visor lee texto. No abre una conexión EventSource, no envía cabeceras, no se autentica, no sigue redirecciones ni prueba cómo se comporta un servidor bajo carga, y no puede saber si la captura está completa. La detección de JSON es un análisis estricto de la carga plegada, así que «data: [DONE]» sigue siendo texto plano mientras que «data: null» cuenta como JSON decodificado.

La tabla de eventos muestra los primeros 180 caracteres de cada carga; el panel de detalle y la copia NDJSON contienen los datos completos. Las capturas largas se analizan en la página, así que un pegado muy grande depende de la memoria del dispositivo y no de una cuota del servidor.

Herramientas recientes: