एक्सटेंशन में रीयल-टाइम अपडेट

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

  • वेब पुश या पुश एपीआई, एक वेब स्टैंडर्ड है. इसकी मदद से, Chrome एक्सटेंशन में किसी भी पुश प्रोवाइडर से मैसेज भेजे और पाए जा सकते हैं. यहां तक कि अपने वेब सर्वर से भी मैसेज भेजे और पाए जा सकते हैं.
  • chrome.gcm, एक लेगसी एक्सटेंशन है. यह एक खास एपीआई है. इसकी मदद से, Firebase क्लाउड से मैसेजिंग का इस्तेमाल करके मैसेज भेजे और पाए जा सकते हैं.
  • WebSockets, एक लो-लेवल प्रोटोकॉल है. इसकी मदद से, Chrome एक्सटेंशन और आपके सर्वर के बीच, दोनों दिशाओं में काम करने वाला कनेक्शन खोला जा सकता है.

आम तौर पर सामने आने वाली स्थितियां

Chrome एक्सटेंशन में, यहां कुछ आम स्थितियां दी गई हैं. इनमें रीयल-टाइम कम्यूनिकेशन ज़रूरी है:

उपयोगकर्ताओं को बदलावों के बारे में अप-टू-डेट रखें.

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

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

उपयोगकर्ताओं को सूचनाएं भेजें.

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

सिर्फ़ कुछ उपयोगकर्ताओं को मैसेज भेजने के लिए, पुश सबसे अच्छा विकल्प है. Firebase क्लाउड से मैसेजिंग में, विषयों (इन्हें चैनल भी कहा जाता है) की सुविधा मिलती है. हालांकि, यह सुविधा सिर्फ़ उनके एचटीटीपी क्लाउड से मैसेजिंग एपीआई में उपलब्ध है. यह लेगसी वर्शन से अलग है, जिसमें chrome.gcm का इस्तेमाल किया जाता है. अगर आपको Chrome के लेगसी वर्शन (Chrome 121 से पहले के वर्शन) का इस्तेमाल करने वाले लोगों के साथ-साथ सभी उपयोगकर्ताओं को ब्रॉड मैसेज भेजने हैं, तो chrome.gcm सबसे सही विकल्प है. लेगसी Firebase मैसेजिंग एपीआई पर बने chrome.gcm को Chrome में एक दशक से ज़्यादा समय से इस्तेमाल किया जा रहा है.

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

तुरंत मैसेजिंग

क्या आपको बार-बार, दोनों दिशाओं में कम्यूनिकेट करने की ज़रूरत पड़ती है? ऐसे में, वेब सॉकेट आपके लिए सबसे अच्छा विकल्प हो सकता है. इससे आपके एक्सटेंशन और आपके सर्वर (या सीधे अन्य उपयोगकर्ताओं) के बीच, दोनों दिशाओं में काम करने वाला कनेक्शन खुलता है. इसकी मदद से, रीयल टाइम में डेटा और मैसेज भेजे और पाए जा सकते हैं. आम तौर पर, वेब पर यह एक बेहतरीन विकल्प है. हालांकि, एक्सटेंशन के साथ इसकी कुछ सीमाएं हैं. अगर आपको इसका इस्तेमाल करना है, तो इन सीमाओं के बारे में पता होना चाहिए .

इस गाइड के बाकी हिस्से में, हम उपलब्ध विकल्पों के बारे में ज़्यादा जानकारी देंगे.

पुश एपीआई की मदद से पुश नोटिफ़िकेशन

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

chrome.gcm की मदद से पुश नोटिफ़िकेशन

chrome.gcm एपीआई, Firebase क्लाउड मैसेजिंग (FCM) से सीधे कनेक्ट होता है. यह वेब ऐप्लिकेशन और मोबाइल ऐप्लिकेशन को रीयल-टाइम अपडेट भेजने की एक सेवा है. यह Chrome के लिए एक खास एक्सटेंशन एपीआई है. इसे ब्राउज़र में पुश की सुविधा उपलब्ध होने से कई साल पहले पुश की सुविधा उपलब्ध होने से कई साल पहले जोड़ा गया था. इसे Firebase के (अब बंद हो चुके) लेगसी एचटीटीपी एपीआई का इस्तेमाल करके बनाया गया था. हालांकि, इन एपीआई को अन्य जगहों पर बंद कर दिया गया है, लेकिन एक्सटेंशन में इन्हें बंद नहीं किया गया है. आने वाले समय में भी ये काम करते रहेंगे. हालांकि, यह लेगसी पुश बैकएंड है. इसलिए, इसमें विषयों जैसी सुविधाएं उपलब्ध नहीं हैं.

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

WebSockets की मदद से रीयल टाइम में मैसेज भेजना

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

पुश नोटिफ़िकेशन के लिए सही नहीं है

WebSockets, एक्सटेंशन प्लैटफ़ॉर्म एपीआई (जैसे, chrome.gcm) का इस्तेमाल करने के बजाय, वेब प्लैटफ़ॉर्म पर काम करते हैं. इसलिए, Chrome के पास यह पता लगाने का कोई तरीका नहीं है कि आपके एक्सटेंशन के बाहर, Websocket कनेक्शन कब शुरू हुआ.

सिर्फ़ चालू कनेक्शन

Chrome, 30 सेकंड तक इस्तेमाल न किए जाने वाले एक्सटेंशन को निलंबित कर देता है. Chrome, कई तरीकों से यह तय करता है कि एक्सटेंशन "इस्तेमाल किया जा रहा है" या नहीं. इनमें से एक तरीका, चालू WebSocket कनेक्शन है. Chrome, पिछले 30 सेकंड में WebSocket मैसेज भेजने या पाने वाले एक्सटेंशन को निलंबित नहीं करेगा. अगर आपके एक्सटेंशन में WebSockets का इस्तेमाल किया जा रहा है और आपको यह पक्का करना है कि यह समय से पहले बंद न हो, तो कनेक्शन बनाए रखने के लिए, हार्टबीट मैसेज भेजा जा सकता है. इसके लिए, सर्वर को समय-समय पर मैसेज भेजे जाते हैं. इससे सर्वर और Chrome, दोनों को पता चलता है कि आपका एक्सटेंशन अब भी चालू है. WebSocket को हमेशा चालू रखने के तरीके का उदाहरण, हमारे WebSocket के दस्तावेज़ में उपलब्ध है.