- आसान, तेज़, स्थिर और बैटरी-कुशल ओपन सॉल्यूशन
- वेब ब्राउज़र और अन्य HTTP क्लाइंट्स को डेटा अपडेट पुश करता है
- खास तौर पर वेब API के ज़रिए उपलब्ध कराए गए resources के asynchronous/real-time updates को reactive web और mobile apps में दिखाने के लिए उपयोगी
- शुद्ध HTTP आधारित: HTTP/2 या उससे ऊपर के प्रोटोकॉल का उपयोग करके bidirectional communication का समर्थन
- तेज़ response time और कम latency
- अलग इंस्टॉलेशन के बिना सभी environments में browser compatibility प्रदान करता है
- सरल publish और subscribe
- Publish: साधारण POST request से संसाधित
- Subscribe: Server-Sent-Events(SSE) के माध्यम से real-time updates प्राप्त
- कनेक्शन टूटने पर automatic reconnection और छूटे हुए messages को फिर से request करने का समर्थन
- RESTful API और GraphQL के लिए डिज़ाइन किया गया
- JWT authentication के माध्यम से private updates प्रदान करता है
- उपयोगकर्ता की connection status जाँचने के लिए Presence API उपलब्ध। subscription और event status को track किया जा सकता है
- event store: उत्पन्न events को store और manage किया जा सकता है
- PHP और अन्य serverless architectures के साथ compatible
- डेटा की पूर्ण सुरक्षा के लिए E2EE(End-to-End Encryption) प्रदान करता है
- production में उपयोग योग्य स्तर का Mercure Hub reference implementation प्रदान करता है
- सभी Go applications में hub के बिना सीधे Mercure protocol को implement करने के लिए उपयोग की जा सकने वाली library और official Docker image भी साथ में प्रदान की जाती है
2 टिप्पणियां
अगर यह SSE-आधारित है, तो क्या यह एकदिश संचार है, या फिर WebSocket की तरह द्विदिश संचार को सपोर्ट करता है, यह जानने की जिज्ञासा है! 😮
फिलहाल मैंने अपने स्तर पर जो खोजा है, उसके हिसाब से यह शायद सिर्फ एकदिश संचार (server->client) ही सपोर्ट करता है... 🥺
https://medium.com/@sirajul.anik/…
उसी व्यक्ति द्वारा बनाए गए FrankenPHP में Mercure implementation बिल्ट-इन है.
https://hi.news.hada.io/topic?id=15103
real-time hub उपलब्ध कराने के पहलू से देखें तो Pushpin भी एक विकल्प हो सकता है.
https://hi.news.hada.io/topic?id=11377
Mercure की तुलना में Pushpin मुझे ज़्यादा intuitive लगा (हाहा... Mercure के docs पढ़ना मुझे बहुत झंझट लगा), इसलिए पहले मैंने Pushpin का इस्तेमाल करके एक side project किया था, लेकिन अगली बार मैं इसे आज़माना चाहूँगा.