Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Gửi tin nhắn ngược dòng từ ứng dụng khách Unity

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Nếu máy chủ ứng dụng của bạn triển khai giao thức Máy chủ kết nối XMPP , nó có thể nhận thông báo ngược dòng từ thiết bị của người dùng lên đám mây. Để bắt đầu một thông báo ngược dòng, ứng dụng khách sẽ gửi một yêu cầu có chứa thông tin sau:

  • Địa chỉ của máy chủ ứng dụng nhận ở định dạng SENDER_ID@fcm.googleapis.com .
  • ID tin nhắn phải là duy nhất cho mỗi ID người gửi .
  • Dữ liệu thông báo bao gồm các cặp khóa-giá trị của trọng tải của thông báo.

Khi nhận được dữ liệu này, FCM sẽ xây dựng một bản XMPP để gửi đến máy chủ ứng dụng, thêm một số thông tin bổ sung về thiết bị gửi và ứng dụng.

Gửi tin nhắn ngược dòng từ ứng dụng khách Unity

Để gửi tin nhắn ngược dòng tới máy chủ, ứng dụng khách Unity soạn tin nhắn và gọi Send như hình minh họa:

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

ở đâu:

  • message.To là địa chỉ của máy chủ ứng dụng nhận ở định dạng SENDER_ID@fcm.googleapis.com .

  • message.MessageId là một mã nhận dạng tin nhắn duy nhất. Tất cả các cuộc gọi lại của người nhận tin nhắn được xác định dựa trên ID tin nhắn này.

  • message.Data là một bản đồ các khóa và giá trị dưới dạng chuỗi.

  • message.TimeToLive chỉ định thời gian (tính bằng giây) tin nhắn sẽ được lưu trong bộ nhớ FCM nếu thiết bị ngoại tuyến. Nếu FCM không thể gửi tin nhắn trước khi hết hạn này, FCM sẽ gửi lại thông báo cho khách hàng.

Thư viện ứng dụng khách FCM lưu thông báo vào bộ nhớ cache trên ứng dụng khách và gửi khi ứng dụng khách có kết nối máy chủ đang hoạt động. Khi nhận được tin nhắn, FCM sẽ gửi nó đến máy chủ ứng dụng.

Nhận tin nhắn XMPP trên máy chủ ứng dụng

Khi FCM nhận được cuộc gọi nhắn tin ngược dòng từ một ứng dụng khách, nó sẽ tạo ra đoạn văn bản XMPP cần thiết để gửi tin nhắn ngược dòng. FCM thêm categoryfrom các trường, sau đó gửi một đoạn thơ như sau đến máy chủ ứng dụng:

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

Gửi tin nhắn ACK

Để phản hồi thông báo ngược dòng như trên, máy chủ ứng dụng phải sử dụng cùng một kết nối để gửi thông báo ACK có chứa ID thông báo duy nhất. Nếu FCM không nhận được ACK, nó có thể thử gửi lại thông báo đến máy chủ ứng dụng.

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

Xem Tham chiếu Máy chủ Kết nối XMPP để biết thêm thông tin về cú pháp tin nhắn ngược dòng.