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

Jeśli Twoje narzędzi serwerowych aplikacji serwera XMPP Connection protokołu, może odbierać wiadomości w górę od urządzenia użytkownika do chmury. Aby zainicjować komunikat nadrzędny, aplikacja kliencka wysyła żądanie zawierające następujące elementy:

  • Adres serwera odbiorcza aplikacji w formacie SENDER_ID@fcm.googleapis.com .
  • Komunikat identyfikator, który powinien być unikalny dla każdego ID 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 upstream do serwera, C ++ aplikacja klient komponuje wiadomość i wzywa 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 jest adres serwera odbiorcza aplikacji w formacie SENDER_ID@fcm.googleapis.com .

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

  • message.data jest mapa klucze i wartości jako ciągi.

  • message.time_to_live Określa czas (w sekundach), komunikat powinien być przechowywany 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 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 Reference Server Connection XMPP aby uzyskać więcej informacji na temat składni upstream wiadomości.