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

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 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ı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.