L’article explique comment construire un site web dynamique utilisant Symfony, NATS et NUTS pour des mises à jour en temps réel sans rafraîchissement. L’idée principale repose sur l’utilisation de Server-Sent Events (SSE), une technologie simple et native pour pousser des données du serveur vers le navigateur via HTTP, évitant ainsi la complexité des WebSockets pour un usage unidirectionnel. L’auteur souligne que SSE est idéal pour des flux de texte unidirectionnels, avec une reconnexion automatique et une gestion simplifiée des événements.
L’architecture proposée intègre NATS JetStream comme système de messagerie, tandis que NUTS agit comme un pont entre NATS et SSE via un module Caddy, réduisant ainsi l’infrastructure nécessaire. Un exemple concret est donné avec un tableau de bord affichant des prix de noix en temps réel, où un producteur envoie des mises à jour via une API, et les navigateurs les reçoivent instantanément sans besoin de rafraîchir la page.
Ce partage explique comment utiliser Symfony 7 et Mercure pour créer une session live réactive sans WebSocket. L'auteur, Jean-Sébastien Christophe, explore l'intégration de Mercure, un protocole de Server-Sent Events (SSE), pour gérer des états de session en temps réel, comme la présence des utilisateurs, sans nécessiter de requêtes répétées ou de boucles côté client. Il détaille la stack technique utilisée (Symfony 7.3, PHP 8.4, Docker, PostgreSQL, MailCatcher) et les avantages de Mercure pour des applications temps réel, tout en prévoyant une future intégration avec FrankenPHP pour optimiser les performances et la sécurité.
Tout est dans le titre
Tout est dans le titre
Une bibliothèque JavaScript permettant d'utiliser Ajax, WebSockets et SSE directement dans le code HTML via des attributs...
Les web sockets sont utiles si l'on veut une communication bi directionnelle entre le client (navigateur) et le serveur... Dans le cas où l'on souhaite juste une communication serveur vers client, il vaut mieux utiliser les SSE. L'auteur montre comment faire en JavaScript (côté client et serveur)