पुश नोटिफ़िकेशन कैसे काम करता है

एपीआई के बारे में ज़्यादा जानने से पहले, चलिए शुरू से आखिर तक बारीकी से विश्लेषण करते हैं. इसके बाद, जब हम बाद में, अलग-अलग विषयों या एपीआई के बारे में जानकारी मिलेगी. इससे आपको पता चलेगा कि यह अहम है.

पुश को लागू करने के तीन मुख्य चरण ये हैं:

  1. किसी उपयोगकर्ता को पुश करने के लिए सदस्यता लेने के लिए, क्लाइंट साइड लॉजिक जोड़ना (उदाहरण के लिए, आपके ब्राउज़र में JavaScript और यूज़र इंटरफ़ेस (यूआई)) ऐसे वेब ऐप्लिकेशन जो पुश नोटिफ़िकेशन भेजने के लिए उपयोगकर्ता को रजिस्टर करते हैं).
  2. आपके बैक-एंड / ऐप्लिकेशन से वह एपीआई कॉल जो उपयोगकर्ता के डिवाइस पर पुश मैसेज ट्रिगर करता है.
  3. सर्विस वर्कर JavaScript फ़ाइल, जिसे "पुश इवेंट" मिलेगा जब पुश नोटिफ़िकेशन मिलता है डिवाइस. इस JavaScript में ही सूचना दिखाई जा सकेगी.

आइए, देखते हैं कि इनमें से हर चरण किस बारे में है.

पहला चरण: क्लाइंट साइड

पहला चरण है "सदस्यता लेना" पुश नोटिफ़िकेशन भेजने के लिए एक उपयोगकर्ता को जोड़ा.

किसी उपयोगकर्ता की सदस्यता लेने के लिए, दो चीज़ों की ज़रूरत होती है. सबसे पहले, मैसेज भेजने के लिए उपयोगकर्ता से अनुमति लेना मैसेज भेजे जाते हैं. दूसरा, ब्राउज़र से PushSubscription लेना.

PushSubscription में वह सारी जानकारी होती है जिसकी ज़रूरत हमें उस उपयोगकर्ता को पुश मैसेज भेजने के लिए होती है. आप "कुछ ऐसा" कर सकते हैं इसे उपयोगकर्ता के डिवाइस का आईडी मानें.

यह सब JavaScript में Push API की मदद से किया जाता है.

ब्राउज़र सहायता

  • Chrome: 42. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • एज: 17. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • Firefox: 44. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • सफ़ारी: 16. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

सोर्स

किसी उपयोगकर्ता की सदस्यता लेने से पहले आपको एक सेट जनरेट करना होगा "ऐप्लिकेशन सर्वर कुंजियों" के बारे में बात कर रहे हैं, जिनके बारे में हम बाद में बात करेंगे.

ऐप्लिकेशन सर्वर कुंजियां, आपके सर्वर के लिए खास होती हैं. इन्हें VAPID कुंजियां भी कहा जाता है. इनकी मदद से, पुश सेवा की मदद से यह जानें कि किस ऐप्लिकेशन सर्वर ने उपयोगकर्ता की सदस्यता ली है और पक्का करें कि दोनों एक ही तरीके से काम करते हों उस उपयोगकर्ता को पुश मैसेज ट्रिगर कर रहा है.

उपयोगकर्ता की सदस्यता लेने और आपके पास PushSubscription होने के बाद, आपको PushSubscription की जानकारी, आपके बैकएंड / सर्वर पर उपलब्ध है. अपने सर्वर पर, आप इसे सेव करेंगे सदस्यता ली है और उसका इस्तेमाल उस उपयोगकर्ता को पुश मैसेज भेजने के लिए किया है.

पक्का करें कि आपने PushSubscription वाले बैकएंड को इसकी सदस्यता दी हो.

चरण 2: एक पुश मैसेज भेजें

अपने उपयोगकर्ताओं को पुश मैसेज भेजने के लिए, आपको पुश मैसेज एपीआई कॉल करना होगा सेवा. इस एपीआई कॉल में यह जानकारी शामिल होगी कि कौनसा डेटा भेजना है, किसे मैसेज भेजना है, और किसी भी मैसेज भेजने के तरीके से जुड़ी शर्तें. आम तौर पर, यह एपीआई कॉल आपके सर्वर से किया जाता है.

कुछ सवाल, जो शायद आप खुद से पूछें:

  • पुश सर्विस कौन और क्या है?
  • यह एपीआई कैसा दिखता है? क्या यह JSON, XML या कोई और चीज़ है?
  • यह एपीआई क्या कर सकता है?

पुश सर्विस कौन और क्या है?

पुश सेवा को नेटवर्क अनुरोध मिलता है, इसकी पुष्टि की जाती है, और सही ब्राउज़र पर पुश मैसेज भेजा जाता है. अगर ब्राउज़र ऑफ़लाइन है, तो मैसेज को ब्राउज़र के ऑनलाइन होने तक सूची में रखा जाता है.

हर ब्राउज़र अपनी पसंद की किसी भी पुश सेवा का इस्तेमाल कर सकता है. डेवलपर के पास इस पर कोई कंट्रोल नहीं होता खत्म. यह समस्या नहीं है, क्योंकि हर पुश सेवा के लिए एक ही एपीआई कॉल होना चाहिए. मतलब आपको इनकी परवाह करने की ज़रूरत नहीं है कि पुश सेवा कौन है. आपको बस यह पक्का करना होगा कि आपका एपीआई कॉल मान्य है.

पुश मैसेज (यानी पुश सेवा का यूआरएल) को ट्रिगर करने के लिए सही यूआरएल पाने के लिए आपको बस PushSubscription में endpoint वैल्यू को देखना होगा.

नीचे PushSubscription से मिलने वाली वैल्यू का एक उदाहरण दिया गया है:

{
  "endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
  "keys": {
    "p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
    "auth": "tBHItJI5svbpez7KI4CCXg=="
  }
}

इस मामले में एंडपॉइंट यह है [https://random-push-service.com/some-kind-of-unique-id-1234/v2/]. पुश सेवा 'random-push-service.com' और हर एंडपॉइंट किसी उपयोगकर्ता के लिए यूनीक होता है. साथ ही, इन्हें इससे दिखाया जाता है 'some-kind-of-unique-id-1234'. पुश के साथ काम करना शुरू करने पर, आपको यह पैटर्न दिखेगा.

सदस्यता में मौजूद कुंजी को बाद में शामिल किया जाएगा.

यह एपीआई कैसा दिखता है?

मैंने बताया है कि हर वेब पुश सेवा के लिए एक ही एपीआई कॉल की उम्मीद होती है. वह एपीआई वेब पुश प्रोटोकॉल. यह एक IETF स्टैंडर्ड है, जो यह तय करता है कि पुश सेवा को एपीआई कॉल कैसे किया जाता है.

एपीआई कॉल के लिए कुछ हेडर सेट करने और डेटा को बाइट की स्ट्रीम बनाने की ज़रूरत होती है. हम उन लाइब्रेरी पर नज़र डालते हैं, जो हमारे लिए इस API कॉल को कर सकती हैं और साथ ही यह भी देख सकती हैं कि इसे खुद कैसे किया जा सकता है.

यह एपीआई क्या कर सकता है?

यह एपीआई, डेटा के साथ / उसके बिना उपयोगकर्ता को मैसेज भेजने का तरीका मुहैया कराता है. में मैसेज भेजने के तरीके के निर्देश दें.

पुश मैसेज के साथ भेजा जाने वाला डेटा एन्क्रिप्ट (सुरक्षित) किया जाना चाहिए. इसकी वजह यह है कि पुश सेवाओं को, जो कोई भी हो सकता है, को पुश मैसेज. यह इसलिए महत्वपूर्ण है, क्योंकि यह ब्राउज़र ही तय करता है कि कौन सी पुश सेवा का इस्तेमाल करें, जिससे ऐसी पुश सेवा का इस्तेमाल करके ब्राउज़र के लिए दरवाज़ा खोला जा सकता है जो सुरक्षित या सुरक्षित नहीं है.

जब पुश मैसेज को ट्रिगर किया जाता है, तो पुश सेवा को एपीआई कॉल मिलेगा और दिखाई देगा. यह संदेश तब तक सूची में रहेगा जब तक कि उपयोगकर्ता का डिवाइस ऑनलाइन नहीं हो जाता और पुश सेवा मैसेज डिलीवर कर सकती है. पुश सेवा को दिए गए निर्देशों से यह तय होता है कि पुश मैसेज सूची में है.

निर्देशों में इस तरह की जानकारी शामिल है:

  • पुश मैसेज के लिए लाइव जाने का समय. इससे तय होता है कि किसी मैसेज को कितनी देर पहले सूची में रखना चाहिए इसे हटाया जाता है, लेकिन इसे डिलीवर नहीं किया जाता.

  • मैसेज कितना ज़रूरी है, यह तय करें. यह तब उपयोगी होता है, जब पुश सेवा सिर्फ़ ज़्यादा प्राथमिकता वाले मैसेज डिलीवर करने से, उपयोगकर्ताओं की बैटरी लाइफ़ बढ़ जाती है.

  • पुश मैसेज में "विषय" बताएं नाम डालें, जो किसी भी लंबित मैसेज को इस नए मैसेज से बदल देगा.

जब आपका सर्वर, पुश मैसेज भेजना चाहता है, तो वह पुश सेवा को वेब पुश प्रोटोकॉल का अनुरोध करता है.

तीसरा चरण: उपयोगकर्ता के डिवाइस पर पुश इवेंट

हमारे द्वारा पुश संदेश भेजे जाने के बाद, पुश सेवा आपके संदेश को अपने सर्वर पर तब तक रखेगी जब तक इनमें से कोई एक इवेंट होता है:

  1. डिवाइस ऑनलाइन हो जाता है और पुश सेवा मैसेज डिलीवर करती है.
  2. मैसेज की समयसीमा खत्म हो जाती है. यदि ऐसा होता है तो पुश सेवा अपनी सूची से संदेश को निकाल देती है और यह कभी भेजा नहीं जाएगा.

जब पुश सेवा कोई संदेश डिलीवर करती है, तो ब्राउज़र को वह संदेश प्राप्त होगा, डेटा देखें और अपने सर्विस वर्कर में push इवेंट भेजें.

सर्विस वर्कर "खास" JavaScript फ़ाइल. ब्राउज़र, आपके पेज के बिना भी इस JavaScript को लागू कर सकता है खोलें. यह ब्राउज़र के बंद होने पर भी इस JavaScript को एक्ज़ीक्यूट कर सकता है. सर्विस वर्कर के पास एपीआई, जैसे पुश नोटिफ़िकेशन, जो वेब पेज पर उपलब्ध नहीं होते. उदाहरण के लिए, ऐसे एपीआई जो उपलब्ध नहीं हैं सर्विस वर्कर स्क्रिप्ट को इसमें शामिल किया जाता है).

यह सर्विस वर्कर के 'पुश' के अंदर है बैकग्राउंड में होने वाले टास्क पूरे किए जा सकते हैं. आपने लोगों तक पहुंचाया मुफ़्त में Analytics कॉल कर सकते हैं, पेजों को ऑफ़लाइन कैश कर सकते हैं, और सूचनाएं दिखा सकते हैं.

जब पुश सेवा से किसी उपयोगकर्ता के डिवाइस पर पुश मैसेज भेजा जाता है, तो आपके सर्विस वर्कर को पुश इवेंट मिलता है

पुश मैसेज सेवा का यही पूरा फ़्लो है.

आगे कहां जाना है

कोड लैब