C++ ऐप्लिकेशन में मैसेज पाना

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


डाउनस्ट्रीम मैसेज पाने के लिए, हर क्लाइंट ऐप्लिकेशन को firebase::messaging::Listener एपीआई पर मौजूद तरीकों को लागू करना होगा.

FCM को शुरू करें

रजिस्ट्रेशन टोकन का ऐक्सेस पाने या मैसेज पाने के लिए, FCM का इस्तेमाल करने से पहले, इसे शुरू करना ज़रूरी है.

FCM को शुरू करने के लिए, ::firebase::messaging::Initialize को कॉल करें. साथ ही, इसे अपना ::firebase::App ऑब्जेक्ट और ::firebase::messaging::Listener क्लास का कोई इंस्टेंस दें.

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

रजिस्ट्रेशन टोकन को ऐक्सेस करना

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

टोकन की वैल्यू को ::firebase::messaging::Listener::OnTokenReceived वर्चुअल फ़ंक्शन के ज़रिए ऐक्सेस किया जा सकता है.

void OnTokenReceived(const char* token) {
  LogMessage("The registration token is `%s`", token);

  // TODO: If necessary send token to application server.
}

मैसेज पाना और उन्हें मैनेज करना

मैसेज पाने के लिए, आपकी लिसनर क्लास को OnMessage वर्चुअल फ़ंक्शन लागू करना होगा.

OnMessage को बदलें

::firebase::messaging::Listener::OnMessage तरीके को बदलकर, आपको मिले मैसेज के आधार पर कार्रवाइयां की जा सकती हैं और मैसेज का डेटा पाया जा सकता है:

void OnMessage(const ::firebase::messaging::Message& message) {
  LogMessage(TAG, "From: %s", message.from.c_str());
  LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}

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

मैसेज मिटाए गए

FCM सर्वर से, भेजे जाने के लिए शेड्यूल किए गए मैसेज मिटाने पर, यह सूचना आपके ऐप्लिकेशन को भेजी जाती है. Message::message_type, "deleted_messages" को उपलब्ध होगा. मैसेज इन वजहों से मिटाए जा सकते हैं:

  1. FCM सर्वर पर बहुत ज़्यादा मैसेज सेव किए गए हैं.

    ऐसा तब हो सकता है, जब डिवाइस के ऑफ़लाइन होने पर, किसी ऐप्लिकेशन के सर्वर FCM सर्वर को कई नॉन-कोलैप्सिबल मैसेज भेजते हैं.

  2. डिवाइस लंबे समय से कनेक्ट नहीं हुआ है और ऐप्लिकेशन सर्वर ने हाल ही में (पिछले चार हफ़्तों में) उस डिवाइस पर ऐप्लिकेशन को एक मैसेज भेजा है.

    हमारा सुझाव है कि यह कॉल मिलने के बाद, ऐप्लिकेशन को ऐप्लिकेशन सर्वर के साथ पूरी तरह से सिंक किया जाए.