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

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

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

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

यहां Chrome एक्सटेंशन के कुछ ऐसे सामान्य मामले दिए गए हैं जिनमें रीयल-टाइम में जानकारी देना बहुत ज़रूरी होता है:

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

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

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

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

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

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

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

झटपट मैसेज सेवा

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

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

Push API की मदद से पुश नोटिफ़िकेशन की सुविधा इस्तेमाल करें

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

chrome.gcm के साथ पुश नोटिफ़िकेशन

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

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

WebSockets इस्तेमाल करके, रीयल टाइम में मैसेज भेजने की सुविधा

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

पुश नोटिफ़िकेशन के लिए बढ़िया नहीं है

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

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

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