रीयल-टाइम अपडेट की मदद से, आपके सर्वर से सीधे तौर पर एक्सटेंशन इंस्टॉलेशन तक तुरंत सूचनाएं भेजी जा सकती हैं. इवेंट होने पर, डेटा भेजा और पाया जा सकता है. चाहे इसका इस्तेमाल फटाफट मैसेज सेवा के लिए किया जाए, बैकग्राउंड में टास्क ट्रिगर करने के लिए किया जाए या डिवाइस पर मौजूद डेटा को सिंक करने के लिए किया जाए, यह कई आधुनिक सेवाओं के लिए एक ज़रूरी ऑपरेशन है. Chrome एक्सटेंशन में रीयल-टाइम में बातचीत करने के कई विकल्प उपलब्ध हैं.
- Web Push या Push API, एक वेब स्टैंडर्ड है. इसकी मदद से, किसी भी पुश सेवा देने वाली कंपनी या अपने वेब सर्वर से, Chrome एक्सटेंशन में मैसेज भेजे और पाए जा सकते हैं.
- browser.gcm एक लेगसी एक्सटेंशन है. यह खास तौर पर एपीआई के लिए बनाया गया है. इसकी मदद से, Firebase क्लाउड से मैसेज का इस्तेमाल करके मैसेज भेजे और पाए जा सकते हैं.
- WebSockets एक लो-लेवल प्रोटोकॉल है. इसकी मदद से, Chrome एक्सटेंशन और सर्वर के बीच दोनों तरफ़ से डेटा ट्रांसफ़र करने वाला कनेक्शन खोला जा सकता है.
आम तौर पर सामने आने वाली स्थितियां
Chrome एक्सटेंशन में, रीयल-टाइम कम्यूनिकेशन के कुछ सामान्य उदाहरण यहां दिए गए हैं:
उपयोगकर्ताओं को बदलावों के बारे में अप-टू-डेट रखें.
अगर आपको कई उपयोगकर्ताओं के बीच फ़ाइलें, सेटिंग या अन्य जानकारी सिंक करनी है, तो वेब पुश सूचनाएं भेजने की सुविधा सबसे सही तरीका है. इससे आपके एक्सटेंशन को सर्वर से स्टेटस अपडेट करने के बारे में सूचना मिलती है.
क्या आपने लोगों को बग या समस्याओं की शिकायत करने की सुविधा दी है? पुश नोटिफ़िकेशन की सुविधा देने वाली कंपनी के साथ इंटिग्रेट किया जा सकता है. इससे, जैसे ही आपको कोई अपडेट शेयर करना हो, वैसे ही उस कंपनी को इसकी सूचना मिल जाएगी. यह सूचना सीधे आपके एक्सटेंशन में मिलेगी.
लोगों को सूचनाएं भेजें.
सूचनाएं पूरी तरह से क्लाइंट साइड से भेजी जा सकती हैं. हालांकि, अगर आपके पास सर्वर साइड लॉजिक है कि सूचना किसे, क्या, कहां या कब भेजनी है, तो वेब पुश सबसे बेहतर विकल्प है.
अगर आपको सिर्फ़ कुछ उपयोगकर्ताओं को मैसेज भेजने हैं, तो पुश नोटिफ़िकेशन सबसे अच्छा विकल्प है.
Firebase क्लाउड से मैसेज भेजने की सुविधा में विषय (इन्हें चैनल भी कहा जाता है) उपलब्ध होते हैं. हालांकि, यह सुविधा सिर्फ़ उनके एचटीटीपी क्लाउड मैसेजिंग एपीआई में उपलब्ध है. यह browser.gcm के लेगसी वर्शन से अलग है. अगर आपको सभी उपयोगकर्ताओं को एक साथ मैसेज भेजने हैं, तो browser.gcm का इस्तेमाल करें. इसमें Chrome के लेगसी वर्शन (Chrome 121 से पहले के वर्शन) का इस्तेमाल करने वाले उपयोगकर्ता भी शामिल हैं. browser.gcm को लेगसी Firebase Messaging API पर बनाया गया है. यह Chrome पर पिछले दस सालों से काम कर रहा है.
जब उपयोगकर्ताओं के खाते में कोई अहम गतिविधि होती है, तब उन्हें सूचनाएं भेजने के लिए वेब पुश या browser.gcm का इस्तेमाल किया जा सकता है. जैसे, जब कोई नया मैसेज आता है या जब कोई फ़ाइल शेयर की जाती है.
फ़टाफ़ट मैसेज सेवा
क्या आपको बार-बार और दो-तरफ़ा बातचीत करनी है? ऐसे में, वेब सॉकेट आपके लिए सबसे अच्छा विकल्प हो सकता है. इससे आपके एक्सटेंशन और सर्वर के बीच (या सीधे तौर पर अन्य उपयोगकर्ताओं के बीच भी) दोनों तरफ़ से कनेक्शन खुल जाता है. इसकी मदद से, रीयल टाइम में डेटा और मैसेज शेयर किए जा सकते हैं. ये आम तौर पर वेब पर इस्तेमाल करने के लिए एक बेहतरीन विकल्प हैं. हालांकि, एक्सटेंशन के साथ इनका इस्तेमाल करने से जुड़ी कुछ सीमाएं हैं. अगर आपको इनका इस्तेमाल करना है, तो आपको इन सीमाओं के बारे में पता होना चाहिए.
इस गाइड के बाकी हिस्से में, हम उपलब्ध विकल्पों के बारे में ज़्यादा जानकारी देंगे.
Push API की मदद से पुश नोटिफ़िकेशन
Push API का इस्तेमाल करके, पुश नोटिफ़िकेशन और मैसेज भेजने के लिए किसी भी पुश सेवा देने वाली कंपनी का इस्तेमाल किया जा सकता है. Push API से मिले पुश को, आपका सर्विस वर्कर तुरंत प्रोसेस करेगा. अगर एक्सटेंशन को निलंबित कर दिया गया है, तो पुश नोटिफ़िकेशन मिलने पर वह फिर से चालू हो जाएगा. एक्सटेंशन में इसका इस्तेमाल करने का तरीका, ओपन वेब पर इसका इस्तेमाल करने के तरीके जैसा ही है.
browser.gcm की मदद से पुश नोटिफ़िकेशन
browser.gcm एपीआई, Firebase Cloud Messaging (FCM) से सीधे तौर पर कनेक्ट होता है. यह एक ऐसी सेवा है जो वेब ऐप्लिकेशन और मोबाइल ऐप्लिकेशन को रीयल-टाइम अपडेट भेजती है. यह Chrome के लिए खास एक्सटेंशन एपीआई है. इसे ब्राउज़र में पुश सुविधा उपलब्ध होने से कई साल पहले जोड़ा गया था. इसे Firebase के लेगसी एचटीटीपी एपीआई का इस्तेमाल करके बनाया गया था. हालांकि, अब ये एपीआई काम नहीं करते. हालांकि, अन्य जगहों पर इन एपीआई का इस्तेमाल बंद कर दिया गया है, लेकिन एक्सटेंशन में इनका इस्तेमाल जारी है. ये आने वाले समय में भी काम करते रहेंगे. हालांकि, यह लेगसी पुश बैकएंड है. इसलिए, इसमें विषय जैसी सुविधाएं नहीं हैं.
Chrome में उपयोगकर्ताओं को सूचनाएं भेजने के लिए, FCM की बैकएंड सेवा का इस्तेमाल करना ज़रूरी है. हालांकि, मैसेज भेजने के लिए आपको browser.gcm का इस्तेमाल करने की ज़रूरत नहीं है.
सभी पुश नोटिफ़िकेशन सेवा देने वाली कंपनियां, वेब पुश का इस्तेमाल करके Firebase खाते में मैसेज और इवेंट भेज और पा सकती हैं. यह अब भी Chrome एक्सटेंशन एपीआई के साथ पूरी तरह से काम करता है. हालांकि, सबसे सही तरीका यह है कि एक्सटेंशन के लिए खास तौर पर बनाए गए एपीआई के बजाय, वेब स्टैंडर्ड जैसे कि पुश एपीआई का इस्तेमाल किया जाए. अगर आपके इस्तेमाल के उदाहरण के लिए browser.gcm सबसे सही है, तो browser.gcm को शुरू से सेट अप करने के तरीके के बारे में पूरी जानकारी दी गई है.
WebSockets की मदद से रीयल टाइम में मैसेज भेजना
WebSockets, एक दशक से ज़्यादा समय से वेब पर रीयल टाइम मैसेजिंग का अहम हिस्सा रहे हैं. ये वेब पर रीयल टाइम इवेंट के लिए सबसे अच्छा विकल्प हैं. इनसे लगातार दोतरफ़ा बातचीत की जा सकती है. WebSockets, एक्सटेंशन के कई कॉम्पोनेंट में काम करते हैं. जैसे, कॉन्टेंट स्क्रिप्ट, पॉप-अप, साइड पैनल या बैकग्राउंड सर्विस वर्कर. ये आम तौर पर वेब पर इस्तेमाल करने के लिए एक बेहतरीन विकल्प हैं. हालांकि, एक्सटेंशन के साथ इनका इस्तेमाल करने की कुछ सीमाएं हैं. अगर आपको इनका इस्तेमाल करना है, तो आपको इन सीमाओं के बारे में पता होना चाहिए.
पुश नोटिफ़िकेशन के लिए अच्छा नहीं है
WebSockets, एक्सटेंशन प्लैटफ़ॉर्म एपीआई के बजाय वेब प्लैटफ़ॉर्म में काम करते हैं. जैसे, browser.gcm. इसलिए, जब आपके एक्सटेंशन के बाहर कोई Websocket कनेक्शन शुरू होता है, तो Chrome के पास आपके एक्सटेंशन को चालू करने का कोई तरीका नहीं होता.
सिर्फ़ चालू कनेक्शन
Chrome, उन एक्सटेंशन को निलंबित कर देता है जिनका इस्तेमाल 30 सेकंड तक नहीं किया जाता. Chrome कई अनुमानित तरीकों का इस्तेमाल करके यह तय करता है कि एक्सटेंशन "इस्तेमाल किया जा रहा है" या नहीं. इनमें से एक तरीका, ऐक्टिव WebSocket कनेक्शन है. Chrome ऐसे एक्सटेंशन को निलंबित नहीं करेगा जिसने पिछले 30 सेकंड में WebSocket कनेक्शन की मदद से मैसेज भेजा या पाया है. अगर अपने एक्सटेंशन में WebSockets का इस्तेमाल किया जा रहा है और आपको यह पक्का करना है कि यह समय से पहले बंद न हो, तो कनेक्शन बनाए रखने के लिए हार्टबीट मैसेज भेजा जा सकता है. इसमें सर्वर को समय-समय पर मैसेज भेजना शामिल है. इससे सर्वर और Chrome, दोनों को पता चलता है कि आप अब भी ऐक्टिव हैं. WebSocket के दस्तावेज़ में, WebSocket को हमेशा चालू रखने का तरीका बताया गया है.