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ść 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 blok XMPP, która wysyła ją do serwera aplikacji. podanie dodatkowych informacji 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ść, dzwoni pod numer Send, jak pokazano na ilustracji:

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. 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 pamięci FCM, jeśli urządzenie jest offline. W przypadku FCM nie może dostarczyć wiadomości przed upływem tego terminu, wysyła do klienta.

Biblioteka klienta FCM zapisuje wiadomość w pamięci podręcznej w aplikacji klienckiej i wysyła 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 nawiązywanie wiadomości z aplikacji klienckiej, generuje niezbędną strofę XMPP do wysłania komunikatu. FCM dodaje pola category i from, a następnie wysyła do serwera aplikacji w ten sposób:

<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 komunikat powyższy, taki jak powyżej, serwer aplikacji musi używać tego samego połączenia, aby wysłać wiadomość ACK zawierającą unikalną wartość identyfikator wiadomości. Jeśli FCM nie otrzyma potwierdzenia, może ponowić próbę wysłania wiadomość do serwera aplikacji.

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

Patrz dokumentacja dotycząca serwera połączenia XMPP. .