Wysyłanie wiadomości z aplikacji klienckiej Unity

.

Jeśli serwer aplikacji implementuje protokół XMPP Connection Server, może 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.

Wysyłanie wiadomości z poziomu aplikacji klienta 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. Wszystkie wywołania zwrotne odbiornika wiadomości są identyfikowane na podstawie tego identyfikatora wiadomości.

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

  • message.TimeToLive określa, jak długo (w sekundach) wiadomość powinna być przechowywana w magazynie FCM, gdy 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 wiadomość w pamięci podręcznej aplikacji klienta i wysyła ją, gdy klient ma aktywne połączenie z serwerem. Po otrzymaniu wiadomości FCM wysyła ją na serwer aplikacji.

Odbieranie komunikatów XMPP na serwerze aplikacji

Gdy FCM otrzyma wywołanie przesyłania wiadomości od aplikacji klienta, wygeneruje niezbędną zwrotkę 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łanie wiadomości potwierdzenia

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 z wyższego poziomu znajdziesz w dokumentacji XMPP Connection Server Reference.