.
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 do wysłania na serwer 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 formacieSENDER_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 klienckiej, wygeneruje niezbędny zwrot XMPP do wysłania wiadomości upstream.
FCM dodaje pola category
i from
, 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.