Unity istemci uygulamasından yukarı akış mesajları gönderme

Uygulama sunucunuz XMPP Bağlantı Sunucusu protokolünü uyguluyorsa bir kullanıcının cihazından buluta yukarı akış mesajlarını alabilir. İstemci uygulaması, bir yukarı akış 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 yükünün anahtar/değer çiftlerini içeren mesaj verileri.

FCM, bu verileri aldığında uygulama sunucusuna göndermek için bir XMPP ifadesi oluşturup gönderen cihaz ve uygulama hakkında bazı ek bilgiler ekler.

Unity istemci uygulamasından yukarı akış mesajı gönderme

Sunucuya akış yönünde mesaj göndermek için bir Unity istemci uygulaması bir mesaj oluşturur ve gösterildiği gibi Send çağrısı yapar:

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 sunucusunun SENDER_ID@fcm.googleapis.com biçimindeki adresidir.

  • message.MessageId, benzersiz bir ileti tanımlayıcısıdır. Tüm mesaj alıcı geri çağırmaları bu mesaj kimliğine göre tanımlanır.

  • message.Data, anahtarların ve değerlerin dize olarak haritasıdır.

  • message.TimeToLive, cihaz çevrimdışı olduğunda mesajın FCM depolama alanında ne kadar süre (saniye cinsinden) saklanması gerektiğini belirtir. FCM, bu süre dolmadan önce mesajı teslim edemezse istemciye 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 alındığında, FCM bunu uygulama sunucusuna gönderir.

Uygulama sunucusunda XMPP mesajlarını al

FCM, bir istemci uygulamasından yukarı akış mesajlaşma çağrısı aldığında, yukarı akış mesajını göndermek için gereken XMPP ifadesini oluşturur. FCM, category ve from alanlarını ekler ve ardından uygulama sunucusuna aşağıdakine benzer bir dize 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, 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öz dizimi hakkında daha fazla bilgi için XMPP Bağlantı Sunucusu Referansı'na bakın.