Bir Unity istemci uygulamasından yukarı akış mesajları gönderin

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:

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 sunucusunun SENDER_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.