- Una solución abierta que es fácil, rápida, estable y eficiente en batería
- Envía actualizaciones de datos a navegadores web y otros clientes HTTP
- Especialmente útil para mostrar actualizaciones asíncronas/en tiempo real de recursos expuestos a través de APIs web en sitios web reactivos y apps móviles
- Basado completamente en HTTP: aprovecha protocolos HTTP/2 o superiores para admitir comunicación bidireccional
- Tiempos de respuesta rápidos y baja latencia
- Ofrece compatibilidad con navegadores en cualquier entorno sin instalación adicional
- Publicación y suscripción simples
- Publicación (Publish): se procesa con una simple solicitud POST
- Suscripción (Subscribe): recibe actualizaciones en tiempo real mediante Server-Sent Events (SSE)
- Si la conexión se corta, admite reconexión automática y solicitud de reenvío de mensajes perdidos
- Diseñado para APIs RESTful y GraphQL
- Proporciona actualizaciones privadas mediante autenticación JWT
- Ofrece una Presence API para verificar el estado de conexión de los usuarios. Permite rastrear el estado de suscripciones y eventos
- Event Store: permite almacenar y administrar los eventos generados
- Compatible con PHP y otras arquitecturas serverless
- Proporciona E2EE (End-to-End Encryption) para una seguridad completa de los datos
- Incluye una implementación de referencia de Mercure Hub apta para uso en producción
- También incluye una librería y una imagen oficial de Docker que pueden usarse para implementar directamente el protocolo Mercure sin hub en cualquier aplicación Go
2 comentarios
Me pregunto si, al estar basado en SSE, la comunicación es unidireccional o si también soporta comunicación bidireccional como WebSocket. 😮
Por lo que encontré por mi cuenta, parece que solo soporta comunicación unidireccional (servidor -> cliente)... 🥺
https://medium.com/@sirajul.anik/…
FrankenPHP, creado por la misma persona, ya trae integrada una implementación de Mercure.
https://es.news.hada.io/topic?id=15103
También está Pushpin, que puede ser una alternativa en el sentido de que ofrece un hub en tiempo real.
https://es.news.hada.io/topic?id=11377
Pushpin me pareció más intuitivo que Mercure (jaja... me daba demasiada pereza leer la documentación de Mercure), así que antes usé Pushpin en un proyecto paralelo, pero la próxima vez me gustaría probar este.