Wysyłanie wiadomości z aplikacji klienckiej Unity

Jeśli Twój serwer aplikacji korzysta z parametru protokół XMPP Connection Server, może on odbierać wiadomości z urządzenia użytkownika do chmury. Aby zainicjować wiadomość w górę, aplikacja klienta wysyła żądanie zawierające:

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

Po otrzymaniu tych danych FCM tworzy zwrotkę XMPP, którą wysyła do serwera aplikacji, dodając dodatkowe informacje o wysyłającym urządzeniu i aplikacji.

Wyślij wiadomość z aplikacji klienckiej Unity

Aby wysyłać wiadomości w górę do serwera, aplikacja kliencka Unity tworzy wiadomość i wywołuje funkcję Send, jak pokazano poniżej:

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 serwera aplikacji w formacie SENDER_ID@fcm.googleapis.com.

  • message.MessageId to unikalny identyfikator wiadomości. Wszyscy odbiorca wiadomości wywołania zwrotne są rozpoznawane na podstawie tego identyfikatora wiadomości.

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

  • message.TimeToLive określa długość wiadomości (w sekundach) przechowywane w FCM pamięci, jeśli urządzenie jest offline. Jeśli FCMnie może dostarczyć wiadomości przed upływem tego okresu, wysyła powiadomienie do klienta.

Biblioteka klienta FCM zapisuje w pamięci podręcznej wiadomość w aplikacji klienckiej i wysyła gdy klient ma aktywne połączenie z serwerem. Po otrzymaniu wiadomości FCM wysyła ją na serwer aplikacji.

Odbieraj komunikaty XMPP na serwerze aplikacji

Gdy FCM otrzyma wywołanie przesyłania wiadomości od aplikacji klienckiej, wygeneruje niezbędny zwrot XMPP do wysłania wiadomości upstream. FCM dodaje pola categoryfrom, a następnie wysyła do serwera aplikacji zwrotkę podobną do tej:

<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łam wiadomość z potwierdzeniem

W odpowiedzi na wiadomość nadrzędną, taką jak powyżej, serwer aplikacji musi użyć tego samego połączenia do wysłania wiadomości ACK zawierającej unikalny identyfikator wiadomości. Jeśli FCM nie otrzyma potwierdzenia, może ponownie wysłać wiadomość do serwera aplikacji.

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

Więcej informacji o składni wiadomości dostępnych na upstream znajdziesz w dokumentacji serwera połączeń XMPP.