- Eine einfache, schnelle, stabile und batterieeffiziente Open-Source-Lösung
- Überträgt Datenaktualisierungen per Push an Webbrowser und andere HTTP-Clients
- Besonders nützlich, um asynchrone/Echtzeit-Updates von Ressourcen, die über Web-APIs bereitgestellt werden, in responsiven Web- und Mobile-Apps anzuzeigen
- Rein HTTP-basiert: Unterstützt bidirektionale Kommunikation unter Nutzung von Protokollen ab HTTP/2
- Schnelle Reaktionszeiten und geringe Latenz
- Bietet Browser-Kompatibilität in allen Umgebungen ohne zusätzliche Installation
- Einfaches Publish und Subscribe
- Publish: Wird mit einer einfachen POST-Anfrage verarbeitet
- Subscribe: Empfang von Echtzeit-Updates über Server-Sent Events (SSE)
- Unterstützt automatische Wiederverbindung und das erneute Anfordern verpasster Nachrichten bei Verbindungsabbruch
- Entwickelt für RESTful APIs und GraphQL
- Bietet private Updates per JWT-Authentifizierung
- Stellt eine Presence API bereit, mit der sich der Verbindungsstatus von Nutzern prüfen lässt. Abonnements und Ereignisstatus können nachverfolgt werden
- Event Store: Ermöglicht das Speichern und Verwalten aufgetretener Ereignisse
- Kompatibel mit PHP und anderen serverlosen Architekturen
- Bietet E2EE (End-to-End Encryption) für vollständige Datensicherheit
- Stellt eine produktionsreife Referenzimplementierung des Mercure Hub bereit
- Wird zusammen mit einer Bibliothek und offiziellen Docker-Images bereitgestellt, die in allen Go-Anwendungen zur direkten Implementierung des Mercure-Protokolls ohne Hub verwendet werden können
2 Kommentare
Wenn es auf SSE basiert, frage ich mich, ob es sich um unidirektionale Kommunikation handelt oder ob es wie WebSockets bidirektionale Kommunikation unterstützt! 😮
Soweit ich selbst recherchiert habe, scheint es jedenfalls nur unidirektionale Kommunikation (Server -> Client) zu unterstützen... 🥺
https://medium.com/@sirajul.anik/…
In dem von derselben Person entwickelten FrankenPHP ist eine Mercure-Implementierung integriert.
https://de.news.hada.io/topic?id=15103
Als Alternative kommt auch Pushpin infrage, das insofern ein Ersatz sein kann, als es einen Realtime-Hub bereitstellt.
https://de.news.hada.io/topic?id=11377
Ich fand Pushpin intuitiver als Mercure (haha ... ich war einfach zu faul, die Mercure-Dokumentation zu lesen), deshalb habe ich früher für ein Side-Project Pushpin verwendet, aber als Nächstes würde ich dieses hier gern ausprobieren.