Recevoir des messages dans les applications C++

Sélectionnez une plate-forme : iOS+ Android Web Flutter Unity C++


Pour recevoir des messages en aval, chaque application cliente doit implémenter les méthodes de l' firebase::messaging::Listener API.

Initialiser FCM

Avant de pouvoir utiliser FCM pour accéder à votre jeton d'enregistrement ou recevoir des messages, vous devez l'initialiser.

Pour initialiser FCM, appelez ::firebase::messaging::Initialize et fournissez-lui votre objet ::firebase::App , ainsi qu'une implémentation de la classe ::firebase::messaging::Listener.

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

Accéder au jeton d'enregistrement

Au démarrage initial de votre application, le FCM SDK génère un jeton d'enregistrement pour l'instance de l'application cliente. Si vous souhaitez cibler des appareils individuels ou créer des groupes d'appareils pour FCM, vous devez accéder à ce jeton.

Vous pouvez accéder à la valeur du jeton via la ::firebase::messaging::Listener::OnTokenReceived fonction virtuelle.

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

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

Recevoir et gérer des messages

Pour recevoir des messages, votre classe d'écouteur doit implémenter la OnMessage fonction virtuelle.

Ignorer OnMessage

En ignorant la méthode ::firebase::messaging::Listener::OnMessage, vous pouvez effectuer des actions en fonction du message reçu et obtenir les données du message :

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());
}

Les messages peuvent représenter différents types de données entrantes. Le plus souvent, les messages sont envoyés à l'application après avoir été initiés par le développeur. Des messages sont également envoyés à votre application pour représenter des événements d'envoi de messages, des événements d'erreur d'envoi de messages et des événements de suppression de messages. Vous pouvez différencier ces événements spéciaux en vérifiant le champ Message::message_type.

Messages supprimés

Envoyé à votre application lorsque le FCM serveur supprime les messages en attente. Message::message_type sera "deleted_messages". Les messages peuvent être supprimés pour les raisons suivantes :

  1. Trop de messages sont stockés sur le FCM serveur.

    Cela peut se produire lorsque les serveurs d'une application envoient un grand nombre de messages non réductibles aux FCM serveurs lorsque l'appareil est hors connexion.

  2. L'appareil n'a pas été connecté depuis longtemps et le serveur d'application a récemment (au cours des quatre dernières semaines) envoyé un message à l'application sur cet appareil.

    Il est recommandé que l'application effectue une synchronisation complète avec le serveur d'application après avoir reçu cet appel.