FCM विषय के हिसाब से मैसेज भेजने की सुविधा की मदद से, एक से ज़्यादा डिवाइसों पर मैसेज भेजे जा सकते हैं. हालांकि, ऐसा सिर्फ़ उन डिवाइसों पर किया जा सकता है जिन्होंने किसी विषय के लिए ऑप्ट-इन किया हो. विषय के हिसाब से मैसेज लिखें. इसके बाद, FCM मैसेज को सही डिवाइसों पर भेजने और डिलीवर करने का काम करता है.
विषय के हिसाब से मैसेज भेजने के बारे में खास बातें:
- यह सुविधा, सार्वजनिक तौर पर उपलब्ध जानकारी के लिए सबसे सही है. जैसे, मौसम की चेतावनियां.
- विषय के हिसाब से भेजे जाने वाले मैसेज, इंतज़ार के समय के बजाय थ्रूपुट के लिए ऑप्टिमाइज़ किए जाते हैं. किसी एक डिवाइस या छोटे ग्रुप को मैसेज तेज़ी से और सुरक्षित तरीके से डिलीवर करने के लिए, टॉपिक के बजाय रजिस्ट्रेशन टोकन को मैसेज टारगेट करें.
कोटा और सीमाएं
विषय के हिसाब से मैसेज भेजने की सुविधा, हर विषय के लिए असीमित सदस्यताओं के साथ काम करती है. हालांकि, FCM इन क्षेत्रों में सीमाएं लागू करता है:
- किसी ऐप्लिकेशन के एक इंस्टेंस को ज़्यादा से ज़्यादा 2,000 विषयों के लिए सदस्यता ली जा सकती है.
- अगर ऐप्लिकेशन इंस्टेंस की सदस्यता लेने के लिए, एक साथ कई सदस्यताएं इस्तेमाल की जा रही हैं, तो हर अनुरोध में ज़्यादा से ज़्यादा 1,000 ऐप्लिकेशन इंस्टेंस शामिल किए जा सकते हैं.
सदस्यता थ्रॉटलिंग
किसी विषय की सदस्यताएं जोड़ने या हटाने की दर, हर प्रोजेक्ट के लिए 3,000 QPS तक सीमित है.
हर प्रोजेक्ट के लिए, नई सदस्यताओं की संख्या सीमित होती है. अगर कम समय में बहुत ज़्यादा सदस्यता अनुरोध भेजे जाते हैं, तो FCM सर्वर, 429 RESOURCE_EXHAUSTED
("QUOTA_EXCEEDED") वाला जवाब देंगे. एक्स्पोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें.
डुप्लीकेट डेटा की गड़बड़ी के लिए थ्रॉटलिंग
मैसेज फ़ैनआउट, एक मैसेज को कई डिवाइसों पर भेजने की प्रोसेस है. जैसे, जब टॉपिक और ग्रुप को टारगेट किया जाता है या जब ऑडियंस या उपयोगकर्ता सेगमेंट को टारगेट करने के लिए, सूचना कंपोज़र का इस्तेमाल किया जाता है.
मैसेज फ़ैनआउट तुरंत नहीं होता है. इसलिए, कभी-कभी एक साथ कई फ़ैनआउट प्रोसेस में होते हैं. हम हर प्रोजेक्ट के लिए, एक साथ भेजे जाने वाले मैसेज की संख्या को 1,000 तक सीमित रखते हैं. इसके बाद, हम फ़ैनआउट के अन्य अनुरोधों को अस्वीकार कर सकते हैं या फ़ैनआउट के अनुरोधों को तब तक के लिए रोक सकते हैं, जब तक कि पहले से चल रहे कुछ फ़ैनआउट पूरे न हो जाएं.
फ़ैनआउट करने की असल दर पर, उन प्रोजेक्ट की संख्या का असर पड़ता है जो एक ही समय में फ़ैनआउट करने का अनुरोध करते हैं. किसी एक प्रोजेक्ट के लिए, 10,000 क्यूपीएस की फ़ैनआउट दर आम बात है. हालांकि, यह संख्या गारंटी नहीं है और यह सिस्टम पर मौजूद कुल लोड का नतीजा है. यह ध्यान रखना ज़रूरी है कि फ़ैनआउट के लिए उपलब्ध क्षमता को प्रोजेक्ट के हिसाब से बांटा जाता है, न कि फ़ैनआउट के अनुरोधों के हिसाब से. इसलिए, अगर आपके प्रोजेक्ट में दो फ़ैनआउट चल रहे हैं, तो हर फ़ैनआउट को फ़ैनआउट रेट का सिर्फ़ आधा हिस्सा दिखेगा. हमारा सुझाव है कि एक बार में सिर्फ़ एक फ़ैनआउट प्रोसेस चालू रखें. इससे फ़ैनआउट की स्पीड को ज़्यादा से ज़्यादा किया जा सकता है.
अगले चरण
- एडमिन SDK या क्लाइंट ऐप्लिकेशन का इस्तेमाल करके, विषय की सदस्यताएं मैनेज करने का तरीका जानें.
- Admin SDK या FCM v1 HTTP API का इस्तेमाल करके, विषयों के हिसाब से मैसेज भेजने का तरीका जानें.