- Solusi terbuka yang mudah, cepat, stabil, dan hemat baterai
- Mendorong pembaruan data ke browser web dan klien HTTP lainnya
- Sangat berguna terutama untuk menampilkan pembaruan asinkron/real-time dari resource yang disediakan melalui web API pada web reaktif dan aplikasi mobile
- Berbasis HTTP murni: mendukung komunikasi dua arah dengan memanfaatkan protokol HTTP/2 atau yang lebih baru
- Waktu respons cepat dan latensi rendah
- Menyediakan kompatibilitas browser di semua lingkungan tanpa instalasi terpisah
- Publish dan subscribe yang sederhana
- Publish: diproses dengan permintaan POST sederhana
- Subscribe: menerima pembaruan real-time melalui Server-Sent Events (SSE)
- Mendukung penyambungan ulang otomatis saat koneksi terputus serta permintaan ulang pesan yang terlewat
- Dirancang untuk RESTful API dan GraphQL
- Menyediakan pembaruan privat melalui autentikasi JWT
- Menyediakan Presence API untuk memeriksa status koneksi pengguna. Dapat melacak status subscribe dan event
- Event store: dapat menyimpan dan mengelola event yang terjadi
- Kompatibel dengan PHP dan arsitektur serverless lainnya
- Menyediakan E2EE (End-to-End Encryption) untuk keamanan data yang sepenuhnya terjaga
- Menyediakan implementasi referensi Mercure Hub yang siap digunakan di production
- Juga disertai library dan image Docker resmi yang dapat digunakan untuk mengimplementasikan protokol Mercure secara langsung di semua aplikasi Go tanpa hub
2 komentar
Kalau berbasis SSE, saya jadi penasaran apakah komunikasinya satu arah, atau mendukung komunikasi dua arah seperti WebSocket! 😮
Sejauh yang saya cari sendiri, sepertinya hanya mendukung komunikasi satu arah (server->klien)... 🥺
https://medium.com/@sirajul.anik/…
Implementasi Mercure sudah tertanam di FrankenPHP yang juga dibuat oleh orang yang sama.
https://id.news.hada.io/topic?id=15103
Ada juga Pushpin yang bisa menjadi alternatif dari sisi menyediakan hub real-time.
https://id.news.hada.io/topic?id=11377
Menurut saya, Pushpin lebih intuitif daripada Mercure (haha... saya terlalu malas membaca dokumentasi Mercure), jadi sebelumnya saya memakai Pushpin untuk proyek sampingan, tetapi lain kali saya ingin mencoba yang ini.