Uygulama sunucunuz XMPP Bağlantı Sunucusu protokolünü uyguluyorsa, 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 mesaj kimliği.
- Mesajın yükünün anahtar-değer çiftlerini içeren mesaj verileri.
FCM bu verileri aldığında, gönderen cihaz ve uygulama hakkında bazı ek bilgiler ekleyerek uygulama sunucusuna göndermek için bir XMPP kıtası oluşturur.
Bir Unity istemci uygulamasından yukarı akış mesajı gönderin
Sunucuya yukarı akış mesajları göndermek için, 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);
Neresi:
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
diziler olarak anahtarların ve değerlerin bir haritasıdır.message.TimeToLive
, cihaz çevrimdışıysa mesajın FCM deposunda ne kadar süre (saniye cinsinden) tutulması gerektiğini belirtir. FCM, bu sona ermeden önce mesajı teslim edemezse müşteriye bir bildirim gönderir.
FCM istemci kitaplığı, iletiyi 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 çağrısı aldığında, yukarı akış mesajını göndermek için gerekli XMPP kıtasını oluşturur. FCM, category
ve from
ekler ve ardından uygulama sunucusuna aşağıdakine benzer bir dörtlük 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 sunucusunun benzersiz mesaj kimliğini içeren bir ACK mesajı göndermek için aynı bağlantıyı kullanması gerekir. 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ış mesajı sözdizimi hakkında daha fazla bilgi için XMPP Bağlantı Sunucusu Referansına bakın.