تلقي الرسائل على تطبيق عميل 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. لم يتم توصيل الجهاز منذ فترة طويلة وقام خادم التطبيق مؤخرًا (خلال الأسابيع الأربعة الماضية) بإرسال رسالة إلى التطبيق الموجود على هذا الجهاز.

    يوصى بأن يقوم التطبيق بإجراء مزامنة كاملة مع خادم التطبيق بعد تلقي هذه المكالمة.