Tech & Governance - Panel
Mercure : des UIs toujours synchronisées avec les données en BDD
Et si l’UI de vos sites web ou vos apps mobiles se mettait à jour en temps réel dès qu’une donnée affichée (prix, disponibilités, commentaires…) est modifiée dans le système de persistence ? Mercure permet aux serveurs de « pousser » des mises à jour en temps réel à tous types de clients. Le protocole est basé sur les « Server-Sent Events », il est donc supporté nativement par les navigateurs (pas besoin de SDK ni de bibliothèque externe), tire parti au maximum de HTTP/2 (contrairement à WebSocket qui n’est pas compatible avec cette nouvelle version du protocole) et passe à travers tous les pare-feux. Mercure est auto-découvrable, conçu dès le départ pour être utilisé avec des API hypermedia ou GraphQL, dispose d’un mécanisme d’autorisation qui permet de ne publier certaines mises jour qu’à certains clients autorisés, permet aux clients de se reconnecter automatiquement si ils perdent puis retrouvent une connection, ré-envoie les messages qui se seraient perdus. Mieux, Mercure fonctionne même avec des langages ou architectures ne permettant pas d’établir des connexions persistantes, tels que serverless (Amazon Lamba, Google Cloud Functions…) ou PHP. De plus, Mercure est déjà supporté officiellement par les frameworks Symfony et API Platform. Au cours de cette présentation, je vous ferai découvrir le protocole plus en détails, puis nous verrons comment : * installer un serveur Mercure grâce à Docker * découvrir le serveur côté client via le Web Linking * s’abonner à des mises à jour en utilisant EventSource * publier des mises à jour via en pure PHP, puis via les frameworks Symfony et API Platform (qui disposent déjà du support officiel du protocole) * mettre à jour des apps React ou React Native avec les données envoyées par Mercure.