Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Wysyłaj wiadomości nadrzędne z aplikacji klienckiej C++

Jeśli serwer aplikacji implementuje protokół XMPP Connection Server , może odbierać komunikaty nadrzędne z urządzenia użytkownika do chmury. Aby zainicjować wiadomość nadrzędną, aplikacja kliencka wysyła żądanie zawierające następujące elementy:

  • Adres serwera aplikacji odbierającej w formacie SENDER_ID@fcm.googleapis.com .
  • Identyfikator wiadomości, który powinien być unikalny dla każdego identyfikatora nadawcy .
  • Dane wiadomości zawierające pary klucz-wartość ładunku wiadomości.

Po otrzymaniu tych danych FCM tworzy sekcję XMPP do wysłania do serwera aplikacji, dodając dodatkowe informacje o urządzeniu wysyłającym i aplikacji.

Wyślij wiadomość nadrzędną z aplikacji klienckiej C++

Aby wysyłać wiadomości do serwera, aplikacja kliencka C++ tworzy wiadomość i wywołuje Send jak pokazano:

::firebase::messaging::Message message;
message.to = SENDER_ID + "@fcm.googleapis.com";
message.message_id = get_unique_message_id();
message.data["my_message", "Hello World");
message.data["my_action", "SAY HELLO");
message.time_to_live = TIME_TO_LIVE;
::firebase::messaging::Send(message);

gdzie:

  • message.to to adres serwera aplikacji odbierającej w formacie SENDER_ID@fcm.googleapis.com .

  • message.message_id to unikalny identyfikator wiadomości. Wszystkie wywołania zwrotne odbiorcy wiadomości są identyfikowane na podstawie tego identyfikatora wiadomości.

  • message.data to mapa kluczy i wartości w postaci ciągów.

  • message.time_to_live określa, jak długo (w sekundach) wiadomość powinna być przechowywana w pamięci FCM, jeśli urządzenie jest w trybie offline. Jeśli FCM nie może dostarczyć wiadomości przed osiągnięciem tego wygaśnięcia, wysyła powiadomienie z powrotem do klienta.

Biblioteka klienta FCM buforuje komunikat w aplikacji klienckiej i wysyła go, gdy klient ma aktywne połączenie z serwerem. Po otrzymaniu wiadomości serwer połączeń FCM wysyła ją do serwera aplikacji.

Odbieraj wiadomości XMPP na serwerze aplikacji

Gdy FCM odbiera wywołanie wysyłania wiadomości z aplikacji klienckiej, generuje niezbędną sekcję XMPP do wysłania komunikatu nadrzędnego. FCM dodaje category i from pola, a następnie wysyła zwrotka jak następuje do serwera aplikacji:

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "category":"com.example.yourapp", // to know which app sent it
      "data":
      {
          "hello":"world",
      },
      "message_id":"m-123",
      "from":"REGID"
  }
  </gcm>
</message>

Wysyłanie wiadomości ACK

W odpowiedzi na komunikat nadrzędny, taki jak powyżej, serwer aplikacji musi użyć tego samego połączenia, aby wysłać komunikat ACK zawierający unikalny identyfikator komunikatu. Jeśli FCM nie otrzyma potwierdzenia ACK, może ponowić próbę wysłania wiadomości do serwera aplikacji.

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "to":"REGID",
      "message_id":"m-123"
      "message_type":"ack"
  }
  </gcm>
</message>

Zobacz XMPP Connection Server Reference, aby uzyskać więcej informacji na temat składni komunikatów nadrzędnych.