JUL6ART
🇫🇷 FR
Retour au blog
28 April 2026

Mercure : la collaboration temps réel sans WebSocket

Une simple annotation et chaque mutation broadcast un patch. Les DataTables et écrans de détail se rafraîchissent seuls.

Collaboration temps réel

Le temps réel dans une application web a longtemps signifié : serveur WebSocket dédié, déploiement parallèle, gestion d'état côté client. Mercure remplace tout cela par du HTTP/2 standard : le serveur publie sur des topics, les clients s'abonnent en SSE, et le hub gère le multiplexage.

Sur Jul6art, le pattern est encore plus simple. L'attribut #[BroadcastableEntity(changedFields: ['title', 'status'])] sur une entité Doctrine déclenche, à chaque flush, la publication d'un patch sur un topic privé scope sur l'organisation. Les composants Stimulus côté backoffice écoutent et rafraîchissent :

  • Les DataTables auto-refresh la ligne touchée sans recharger toute la page.
  • Les écrans de détail affichent un toast « Cet enregistrement vient d'être modifié » et proposent un rechargement.
  • La cloche de notifications s'incrémente sans polling.

Le tout sans une seule ligne de glue côté business code. Ajoutez l'attribut, redémarrez Mercure, c'est en place.