Uygulama sunucunuz XMPP Bağlantı Sunucusu protokolünü uyguluyorsa 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.
FCM, bu verileri aldığında uygulama sunucusuna gönderilecek bir XMPP dizesi oluşturur ve gönderen cihaz ve uygulama hakkında bazı ek bilgiler ekler.
Unity istemci uygulamasından yukarı akış mesajı gönderme
Sunucuya mesaj 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ısı geri aramaları bu mesaj kimliğine göre tanımlanır.message.Data
dizeler halinde anahtarların ve değerlerin haritasıdır.message.TimeToLive
, cihaz çevrimdışıysa mesajın FCM deposunda ne kadar süre (saniye olarak) saklanması gerektiğini belirtir. FCM, mesajı bu süre dolmadan teslim edemezse müşteriye bir bildirim gönderir.
FCM istemci kitaplığı, istemci uygulamasındaki iletiyi ö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ını alın
FCM, bir istemci uygulamasından yukarı akış mesajlaşma çağrısı aldığında, yukarı akış mesajını göndermek için gerekli XMPP dizesini oluşturur. FCM, category
ve alan 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.