23 points par xguru 2022-02-14 | 5 commentaires | Partager sur WhatsApp
  • Quand on crée une application web en temps réel, on pense généralement aux WebSockets, mais les SSE peuvent aussi être une alternative simple

  • Problèmes des WebSockets : comme ils ne sont pas basés sur HTTP, ils ne bénéficient pas des avantages de HTTP

→ pas de compression, prise en charge limitée du multiplexage HTTP/2, non pris en charge par les proxys, possibilité de détournement

  • Server-Sent Events (SSE)

→ fonctionnalité permettant au serveur d’envoyer au client des événements push à faible latence

→ standard HTML et pris en charge par tous les navigateurs (sauf IE)

→ contrairement aux WebSockets, les SSE fonctionnent dans un seul sens, du serveur vers le client (donc inadaptés aux jeux nécessitant une communication bidirectionnelle)

→ fonctionnent au-dessus de HTTP et ne nécessitent aucun protocole distinct

5 commentaires

 
minhoryang 2022-02-18

Dans les environnements avec Load Balancer ou Proxy, la prise en charge de SSE est souvent insuffisante. (+ pare-feu d’entreprise)

Si vous envisagez des environnements comme Cloudflare, AWS CLB, etc., vous devriez vérifier une nouvelle fois avant d’adopter SSE.

 
cometkim 2022-02-16

Il est aussi parfois utilisé comme transport pour les subscriptions GraphQL à la place de WebSocket.

 
wan2land 2022-02-14

Cela peut être une alternative lorsqu’il est difficile d’implémenter des WebSockets dans des environnements particuliers comme Deno Deploy ou Lambda. :-)

J’ai moi aussi découvert les SSE pour la première fois récemment en regardant un exemple de chat sur Deno Deploy.

https://github.com/lucacasonato/deploy_chat

 
nicewook 2022-02-14

Je ne savais pas que ça existait. J’apprends quelque chose

 
xguru 2022-02-14

Consultez aussi les commentaires de cet article ainsi que ceux sur HN.

Il y a beaucoup d’avis variés, entre ceux qui utilisent SSE, ceux qui ont migré depuis WebSocket, et ceux qui sont passés à SSE avant de revenir à WebSocket.

https://news.ycombinator.com/item?id=30312897

En réalité, l’article met beaucoup en avant les avantages de SSE, mais cela reste surtout utile dans des scénarios particuliers.

Ces derniers temps, il existe aussi davantage de bibliothèques côté WebSocket, ce qui a simplifié l’implémentation.

Certains défendent aussi cette idée.