Lecteur d’événements SSE

Collez une réponse text/event-stream capturée puis sélectionnez un événement. Le lecteur analyse le texte sans ouvrir de connexion en direct.

Fonctionne localement dans votre navigateur
Cette visionneuse analyse uniquement le texte collé. Il ne se connecte pas à un point de terminaison et n’envoie pas de données de flux n’importe où.
Texte du flux SSEColler des cadres de texte/flux d'événements séparés par des lignes vides

Inspecter les trames de protocole sans ouvrir de connexion

Collez une réponse de texte/flux d'événements capturée pour déboguer le repliement des champs et la répartition des événements. L'authentification, le comportement de reconnexion, la mise en cache HTTP et l'état de la connexion font toujours partie de vos tests client et serveur.

Comment examiner un flux SSE capturé

Collez une réponse text/event-stream capturée puis cliquez sur Analyser les événements. Le lecteur la découpe en événements et affiche le nom, l’identifiant qu’un navigateur rapporterait, la valeur retry et les données repliées de chacun ; les charges qui sont du JSON valide sont décodées dans le volet de détail, et le flux entier peut être copié en NDJSON.

L’analyse suit les règles qu’un navigateur applique à un flux EventSource : une trame qui apparaît ici sera distribuée dans votre client, et un bloc écarté ici l’est aussi dans le navigateur. Tout s’exécute dans la page : aucune connexion n’est ouverte et aucun texte capturé n’est envoyé.

  1. Collez la capture dans le champ de texte du flux SSE.
  2. Cliquez sur Analyser les événements. Le tableau liste chaque événement distribué ; un flux qui ne termine jamais un bloc par une ligne vide ne produit aucun événement, comme une connexion tronquée.
  3. Cliquez sur une ligne pour voir la charge complète de l’événement, JSON décodé compris.
  4. Utilisez Copier NDJSON pour sortir tous les événements de la page, ou Effacer pour réinitialiser l’atelier.

Champs, identifiants et moment de distribution

Ce que le lecteur interprète

Les noms de champs sont comparés littéralement : data, event, id et retry. Un espace après les deux-points est retiré, donc « data:x » et « data: x » portent la même valeur tandis que « data: x » conserve un espace initial. Une ligne sans deux-points est un nom de champ à valeur vide : une ligne « data » seule ajoute une ligne vide à la charge, et les champs inconnus sont ignorés.

Chaque ligne data est ajoutée avec un saut de ligne ; la charge repliée conserve ces sauts et perd le dernier au moment de la distribution. Les commentaires commencent par deux-points et ne déclenchent jamais d’événement ; le compteur indique combien il y en avait.

Identifiants, retry et moment de distribution

Un événement n’est distribué que si une ligne vide termine son bloc. Le dernier bloc inachevé est écarté, comme le fait un navigateur pour un flux qui s’arrête au milieu d’un événement ; ajoutez la ligne vide manquante pour le voir. Un champ id fixe immédiatement le dernier identifiant, donc un événement suivant sans id porte la même valeur, et un « id: » vide l’efface. Un identifiant contenant un caractère NUL est ignoré. Seul le nom de l’événement retombe sur « message ».

retry n’est accepté que si la valeur ne contient que des chiffres ; l’indicateur affiche la dernière valeur acceptée, soit le délai de reconnexion qu’un client utiliserait pour le reste du flux. Le lecteur ne mesure ni le temps de réponse du serveur ni une éventuelle reconnexion.

Ce que cette page ne fait pas

Le lecteur lit du texte. Il n’ouvre pas de connexion EventSource, n’envoie pas d’en-têtes, ne s’authentifie pas, ne suit pas les redirections et ne teste pas le comportement d’un serveur en charge ; il ne peut pas dire si la capture est complète. La détection JSON est une analyse stricte de la charge repliée : « data: [DONE] » reste du texte, tandis que « data: null » compte comme du JSON décodé.

Le tableau affiche les 180 premiers caractères de chaque charge ; le volet de détail et la copie NDJSON contiennent les données complètes. Les captures longues sont analysées dans la page : un collage très volumineux dépend de la mémoire de l’appareil, pas d’un quota serveur.

Outils récents :