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.
}

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

मैसेज पाने के लिए, आपकी Listener क्लास में 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. डिवाइस लंबे समय से कनेक्ट नहीं है और ऐप्लिकेशन सर्वर ने हाल ही में (पिछले चार हफ़्तों के अंदर) उस डिवाइस पर मौजूद ऐप्लिकेशन को एक मैसेज भेजा है.

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