Uygulama sunucunuz XMPP Bağlantı Sunucusu protokolünü uyguluyorsa kullanıcının cihazından buluta giden iletileri alabilir. İstemci uygulaması, yayın mesajı başlatmak için 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 ileti kimliği.
- Mesajın yükü olan anahtar/değer çiftlerini içeren mesaj verileri.
FCM, bu verileri aldığında uygulama sunucusuna göndermek için bir XMPP ifadesi oluşturur. gönderen cihaz ve uygulama hakkında bazı ek bilgiler ekleyin.
Unity istemci uygulamasından yayın mesajı gönderme
Sunucuya akış yukarı mesaj göndermek için bir Unity istemci uygulaması bir mesaj oluşturur ve
Send
şu şekilde çağrılıyor:
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);
Bu örnekte:
message.To
, alıcı uygulama sunucusununSENDER_ID@fcm.googleapis.com
biçimindeki adresidir.message.MessageId
, benzersiz bir ileti tanımlayıcısıdır. Tüm ileti alıcısı geri çağırma işlevleri bu ileti kimliğine göre tanımlanır.message.Data
, anahtarların ve değerlerin dize olarak eşlendiği bir haritadır.message.TimeToLive
, mesajın ne kadar süre (saniye cinsinden) olması gerektiğini belirtir cihaz çevrimdışıysa FCM depolama alanında saklanır. FCM, bu süre dolmadan iletiyi teslim edemezse istemciye geri 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. İleti alındığında, FCM, bunu uygulama sunucusuna gönderir.
Uygulama sunucusunda XMPP mesajları alma
FCM, bir istemci uygulamasından yukarı akış mesajlaşma çağrısı aldığında,
yukarı akış mesajını göndermek için gereken XMPP cümlesi.
FCM, category
ve from
alanlarını ekler, ardından bir gönderir
metin, uygulama sunucusuna aşağıdakine benzer:
<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 yayın 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 göndermeyi yeniden deneyebilir. uygulama sunucusuna gönderilir.
<message id=""> <gcm xmlns="google:mobile:data"> { "to":"REGID", "message_id":"m-123" "message_type":"ack" } </gcm> </message>
XMPP Bağlantı Sunucusu Referansı'na bakın. sayfasına bakın.