Wysyłanie wiadomości z aplikacji klienckiej Unity

Jeśli serwer aplikacji korzysta z protokołu serwera połączenia XMPP, może odbierać komunikaty z urządzenia użytkownika do chmury. Aby zainicjować wiadomość nadrzędną, aplikacja kliencka wysyła żądanie zawierające te 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 układ XMPP, który wysyła się do serwera aplikacji, i dodaje dodatkowe informacje o urządzeniu i aplikacji wysyłającej.

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 Send w następujący sposób:

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 odbierającej w formacie SENDER_ID@fcm.googleapis.com.

  • message.MessageId to unikalny identyfikator wiadomości. Wszystkie wywołania zwrotne odbiorców wiadomości są identyfikowane 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, jak długo (w sekundach) wiadomość ma być przechowywana w pamięci FCM, gdy urządzenie jest offline. Jeśli FCM nie może dostarczyć wiadomości przed upływem tego terminu, wysyła powiadomienie do klienta.

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

Odbieraj komunikaty XMPP na serwerze aplikacji

Gdy FCM odbiera z aplikacji klienckiej żądanie przesyłania wiadomości z aplikacji klienckiej, generuje niezbędną strofę XMPP do wysłania wiadomości nadrzędnej. FCM dodaje pola category i from, a następnie wysyła do serwera aplikacji ciąg znaków podobny do tego:

<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żywać tego samego połączenia, aby wysłać wiadomość potwierdzenia zawierającą unikalny identyfikator wiadomości. Jeśli FCM nie otrzyma potwierdzenia, może ponowić próbę wysłania wiadomości na serwer 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 wysyłanych do serwera znajdziesz w dokumentacji serwera połączenia XMPP.