Uygulama sunucunuz XMPP Bağlantı Sunucusu protokolünü uygularsa, bir kullanıcının cihazından buluta yukarı akış mesajları alabilir. Bir yukarı akış mesajı başlatmak için istemci uygulaması aşağıdakileri içeren bir istek gönderir:
- Alıcı uygulama sunucusunun
SENDER_ID@fcm.googleapis.com
biçimindeki adresi. - Her gönderen kimliği için benzersiz olması gereken bir ileti kimliği .
- Mesajın yükünün anahtar/değer çiftlerini içeren mesaj verileri.
Bu verileri aldığında FCM, uygulama sunucusuna göndermek için bir XMPP kıtası oluşturur ve gönderen cihaz ve uygulama hakkında bazı ek bilgiler ekler.
Bir Unity istemci uygulamasından yukarı akış mesajı gönderin
Sunucuya yukarı akış mesajları göndermek için, bir Unity istemci uygulaması bir mesaj oluşturur ve gösterildiği gibi Send
çağırır:
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);
nerede:
message.To
, alıcı uygulama sunucusununSENDER_ID@fcm.googleapis.com
biçimindeki adresidir.message.MessageId
benzersiz bir mesaj tanımlayıcısıdır. Tüm mesaj alıcı geri aramaları, bu mesaj kimliği temelinde tanımlanır.message.Data
, dizeler olarak anahtarların ve değerlerin bir haritasıdır.message.TimeToLive
, cihaz çevrimdışıysa mesajın FCM deposunda ne kadar süreyle (saniye cinsinden) tutulması gerektiğini belirtir. FCM bu süre dolmadan mesajı teslim edemezse, istemciye bir bildirim gönderir.
FCM istemci kitaplığı, mesajı istemci uygulamasında önbelleğe alır ve istemcinin etkin bir sunucu bağlantısı olduğunda gönderir. Mesajı aldıktan sonra FCM, onu uygulama sunucusuna gönderir.
Uygulama sunucusunda XMPP mesajları alın
FCM, bir istemci uygulamasından bir yukarı akış mesajlaşma araması aldığında, yukarı akış mesajını göndermek için gerekli XMPP kıtasını oluşturur. FCM, category
from
alanlardan ekler ve ardından uygulama sunucusuna aşağıdakine benzer bir kıta gönderir:
<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>
ACK mesajı gönderme
Yukarıdaki gibi bir yukarı akış mesajına yanıt olarak, uygulama sunucusu, benzersiz mesaj kimliğini içeren bir ACK mesajı göndermek için aynı bağlantıyı kullanmalıdır. FCM bir ACK almazsa, mesajı uygulama sunucusuna göndermeyi yeniden deneyebilir.
<message id=""> <gcm xmlns="google:mobile:data"> { "to":"REGID", "message_id":"m-123" "message_type":"ack" } </gcm> </message>
Yukarı akış ileti sözdizimi hakkında daha fazla bilgi için XMPP Bağlantı Sunucusu Başvurusu'na bakın.