Catch up on highlights from Firebase at Google I/O 2023. Learn more

Wysyłaj wiadomości upstream z aplikacji klienckiej Unity

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

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

Po otrzymaniu tych danych FCM tworzy sekcję XMPP w celu 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 aparatu Unity

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

Firebase.Messaging.Message message;
message.To = SENDER_ID + "@fcm.googleapis.com";
message.MessageId = get_unique_message_id();
message.Data("my_message", "Hello World");
message.Data("my_action", "SAY HELLO");
message.TimeToLive = kTimetoLive;
Firebase.Messaging.FirebaseMessaging.Send(message);

Gdzie:

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

  • message.MessageId 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 łańcuchów.

  • message.TimeToLive określa, jak długo (w sekundach) wiadomość powinna być przechowywana w magazynie FCM, jeśli urządzenie jest w trybie offline. Jeśli FCM nie może dostarczyć wiadomości przed upływem tego terminu 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

Kiedy FCM odbierze nadrzędne wywołanie wiadomości z aplikacji klienckiej, generuje niezbędną sekcję XMPP do wysłania nadrzędnej wiadomości. FCM dodaje category i pola from pola, a następnie wysyła sekcję podobną do poniższej 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ższy, 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, 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>

Więcej informacji na temat składni komunikatów nadrzędnych można znaleźć w dokumencie XMPP Connection Server Reference .