Comprendre les Server Sent Events

Imaginez que vous utilisiez ChatGPT. Vous posez une question. Au lieu de voir les mots apparaître un par un, vous attendez 5 secondes que la réponse entière apparaisse d'un coup.

Ce délai semble lent. C'est frustrant.

Pour y remédier, les développeurs utilisent le streaming de réponses. Cela donne une impression de rapidité.

Les Server Sent Events (SSE) rendent cela possible.

Qu'est-ce que le SSE ? Le SSE est une norme permettant de diffuser des données d'un serveur vers un client via HTTP. Il permet au serveur de vous envoyer des mises à jour en temps réel.

Comment ça marche : Le serveur envoie de petits blocs de texte. Ces blocs utilisent des champs tels que data, event, id, et retry. Chaque bloc est séparé par une ligne vide.

Exemple : data: {"name": "Portal Gun", "price": 999.99}

Utilisations courantes du SSE :

  • Streaming de chat IA
  • Notifications en direct
  • Logs en temps réel
  • Observabilité du système

Avant le SSE, les développeurs utilisaient deux méthodes principales pour obtenir des mises à jour :

  1. Short polling Le client demande des données au serveur. Si les données ne sont pas prêtes, le serveur envoie un message d'attente. Le client attend et demande à nouveau. Cela se répète jusqu'à ce que le travail soit terminé.

  2. Long polling Le client demande des données au serveur. Le serveur maintient la requête ouverte jusqu'à ce que les données soient prêtes ou qu'un délai d'expiration survienne. Le client doit redémarrer la requête immédiatement après avoir reçu une réponse.

Les flux d'événements gèrent des processus continus. Ces processus suivent un ordre spécifique. Cela inclut des tâches simples comme la création d'un PDF ou des tâches complexes comme des transactions bancaires.

Le serveur ouvre un canal de communication avec le client. Il maintient ce canal ouvert jusqu'à ce que le processus soit terminé.

Source : https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd