從 Unity 用戶端應用程式傳送上游訊息

如果您的應用程式伺服器 XMPP Connection Server 通訊協定 可以接收使用者裝置上的上游訊息至雲端。 如要啟動上游訊息,用戶端應用程式會傳送包含以下內容的要求:

  • 接收應用程式伺服器位址,格式為 SENDER_ID@fcm.googleapis.com
  • 每個寄件者 ID 專屬的郵件 ID。
  • 訊息資料,組成訊息酬載的鍵/值組合。

FCM 會在收到這項資料後建立一個 XMPP 段落,然後傳送到應用程式伺服器。 加入一些關於傳送端裝置和應用程式的額外資訊。

從 Unity 用戶端應用程式傳送上游訊息

為了從上游傳送訊息至伺服器,Unity 用戶端應用程式會撰寫訊息, 呼叫 Send,如下所示:

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);

其中:

  • message.To 是接收應用程式伺服器的位址,格式為 SENDER_ID@fcm.googleapis.com

  • message.MessageId 是郵件的專屬 ID。所有訊息接收器 回呼是根據這個訊息 ID 識別。

  • message.Data 是鍵/值的對應字串。

  • message.TimeToLive 指定訊息的長度 (秒) 會在裝置離線時保存在 FCM 儲存空間。如果是 FCM 無法在期限前傳送訊息,如果超過期限,就會 通知用戶端。

FCM 用戶端程式庫會在用戶端應用程式快取訊息, 都會受到刪除。收到郵件後, FCM 傳送至應用程式伺服器。

在應用程式伺服器上接收 XMPP 訊息

當 FCM 從用戶端應用程式收到上游訊息呼叫時,就會產生 傳送上游訊息所需的 XMPP 段落。 FCM 會新增 categoryfrom 欄位,然後傳送 將 stanza 複製到應用程式伺服器,如下所示:

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

傳送確認訊息

為了回應如上述上游訊息,應用程式伺服器 必須使用相同的連線傳送確認訊息, 郵件 ID如果 FCM 沒有收到 ACK,可能會重試傳送 訊息傳送至應用程式伺服器

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "to":"REGID",
      "message_id":"m-123"
      "message_type":"ack"
  }
  </gcm>
</message>

請參閱「XMPP 連線伺服器參考資料」。 ,進一步瞭解上游訊息語法。