रीयल-टाइम रिमोट कॉन्फ़िगरेशन को समझना


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

  • टारगेट किए गए उपयोगकर्ताओं के लिए, सुविधाओं को धीरे-धीरे रोल आउट करके जोखिम को कम करें. ज़रूरत पड़ने पर, आपातकालीन स्थिति में रोल बैक करें.
  • ऐप्लिकेशन का इस्तेमाल करते समय उपयोगकर्ता अनुभव को तेज़ी से कस्टमाइज़ करके उपयोगकर्ताओं का जुड़ाव बढ़ाएं. उदाहरण के लिए, जो उपयोगकर्ता खास Google Analytics उपयोगकर्ता प्रॉपर्टी से मेल खाते हैं उन्हें बैनर अपडेट करके इंसेंटिव ऑफ़र किए जा सकते हैं या एक जैसे उपयोगकर्ताओं के खिलाड़ियों के लिए गेम में कठिनाई का लेवल डाइनैमिक रूप से अडजस्ट किया जा सकता है.
  • बिल्ड डिपेंडेंसी को कम करें और डेवलपर को ज़्यादा प्रोडक्टिविटी बढ़ाएं: अपनी डेवलपमेंट और टेस्ट टीम के लिए फ़ंक्शन की जानकारी देने के लिए, रिमोट कॉन्फ़िगरेशन पैरामीटर का इस्तेमाल फ़ीचर फ़्लैग के तौर पर करें. ऐसा करने के दौरान, यह पैरामीटर उपयोगकर्ताओं के लिए प्रोडक्शन में नहीं होता.

रिमोट कॉन्फ़िगरेशन का इस्तेमाल करने के तरीकों के बारे में ज़्यादा जानने के लिए, देखें रिमोट कॉन्फ़िगरेशन की मदद से क्या-क्या किया जा सकता है?

इस गाइड में आपको:

  • रीयल-टाइम अपडेट के साथ काम करने वाले क्लाइंट-सर्वर संबंध के बारे में ज़्यादा जानें.
  • जानें कि SDK टूल में रीयल-टाइम फ़ंक्शन कैसे काम करता है.
  • अपने ऐप्लिकेशन के कॉन्फ़िगरेशन को अप-टू-डेट रखने के लिए, रीयल-टाइम अपडेट को इस्तेमाल करने का तरीका जानें.

रीयल-टाइम क्लाइंट-सर्वर कनेक्शन

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

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

रीयल-टाइम रिमोट कॉन्फ़िगरेशन क्लाइंट-सर्वर वर्कफ़्लो

क्लाइंट-सर्वर कनेक्शन एचटीटीपी पर बनाया जाता है, इसलिए इसे दूसरी लाइब्रेरी पर निर्भर नहीं रहना पड़ता.

अपडेट के लिए सुनें

रीयल-टाइम अपडेट, रिमोट कॉन्फ़िगरेशन के fetch कॉल को पूरा करने में मदद करते हैं. हमारा सुझाव है कि ऐप्लिकेशन शुरू होने पर (या ऐप्लिकेशन के लाइफ़साइकल के दौरान) 'फ़ेच करें' को कॉल करें. साथ ही, उपयोगकर्ता सेशन के दौरान रीयल-टाइम रिमोट कॉन्फ़िगरेशन अपडेट को सुनें. इससे यह पक्का किया जा सकेगा कि सर्वर पर पब्लिश होते ही आपके पास नई वैल्यू हों.

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

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

पैरामीटर वैल्यू को चुनिंदा तरीके से चालू करना

जब आप कॉल करते हैं addOnConfigUpdateListener, तो आप इस बदलाव का इंतज़ार कर सकते हैं और उसे चालू कर सकते हैं.

जब onUpdate कॉलबैक की वैल्यू को फ़ेच किया गया, तो

इन कॉलबैक को configUpdate पैरामीटर के साथ शुरू किया जाता है. configUpdate इसमें शामिल है updatedKeys यह बदली गई पैरामीटर कुंजियों का सेट है, जिसकी वजह से रीयल-टाइम अपडेट शुरू होता है. इसमें ये चीज़ें शामिल होती हैं:

  • पैरामीटर कुंजियां जोड़ी या हटाई गईं
  • ऐसी पैरामीटर कुंजियां जिनकी वैल्यू बदल गई हैं
  • ऐसी पैरामीटर कुंजियां जिनका मेटाडेटा बदल गया है (उदाहरण के लिए, रिमोट कॉन्फ़िगरेशन को उपयोगकर्ता के हिसाब से बनाने की जानकारी)
  • ऐसी पैरामीटर कुंजियां जिनका वैल्यू के सोर्स में बदलाव हुआ है. उदाहरण के लिए, इन-ऐप्लिकेशन डिफ़ॉल्ट वैल्यू को सर्वर साइड वैल्यू पर अपडेट करना

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

कभी-कभी, फ़ेच करने की प्रोसेस के बारे में क्लाइंट को कोई अपडेट नहीं मिलता. फिर चाहे, आपने fetch तरीके को कॉल किया हो या रीयल-टाइम रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, फ़ेच किया जा रहा हो. ऐसे मामलों में, onUpdate तरीके या पूरा होने के तरीके के बारे में नहीं बताया जाएगा.

लिसनर जोड़ें और हटाएं

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

कॉल, "लिसनर रजिस्ट्रेशन" दिखाता है, जिसका एक तरीका है remove.

सुनना बंद करने के लिए, लिसनर रजिस्ट्रेशन में रेफ़रंस को सेव करें. इस रजिस्ट्रेशन को सुनना बंद करने के लिए, remove को कॉल करें. अगर सिर्फ़ यह रजिस्टर किया गया है, तो remove को कॉल करने से सर्वर से रीयल-टाइम कनेक्शन बंद हो जाता है.

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

अगले चरण

रिमोट कॉन्फ़िगरेशन को कॉन्फ़िगर करने और रीयल-टाइम में अपडेट सुनने के लिए, Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल शुरू करना लेख पढ़ें.