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

प्लैटफ़ॉर्म चुनें: iOS+ Android वेब Flutter Unity C++

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

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

Remote Config को इस्तेमाल करने के तरीकों के बारे में ज़्यादा जानने के लिए, Remote Config की मदद से क्या-क्या किया जा सकता है? लेख पढ़ें.

इस गाइड में ये विषय शामिल हैं:

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

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

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

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

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

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

अपडेट सुनें

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अगले चरण

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