Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

پیام های بالادستی را از یک برنامه مشتری Unity ارسال کنید

اگر برنامه را پیاده سازی سرور شما XMPP اتصال به سرور پروتکل، می تواند پیام های بالادست از دستگاه کاربر را به ابر دریافت خواهید کرد. برای شروع یک پیام بالادستی ، برنامه سرویس گیرنده یک درخواست شامل موارد زیر را ارسال می کند:

  • آدرس سرور برنامه دریافت در قالب SENDER_ID@fcm.googleapis.com .
  • یک شناسه پیام است که باید منحصر به فرد برای هر یک ID فرستنده .
  • داده های پیام شامل زوج های کلید و مقدار بار پیام است.

هنگامی که این داده ها را دریافت می کند ، FCM یک بند XMPP برای ارسال به سرور برنامه ایجاد می کند و اطلاعات اضافی در مورد دستگاه و برنامه ارسال کننده اضافه می کند.

یک پیام بالادستی از برنامه مشتری 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 یک شناسه پیام منحصر به فرد است. همه تماس های گیرنده پیام بر اساس این شناسه پیام مشخص می شوند.

  • message.Data یک نقشه از کلید ها و مقادیر را به عنوان رشته است.

  • message.TimeToLive مشخص چه مدت (در ثانیه) پیام باید در محل FCM نگه داشته اگر دستگاه آفلاین است. اگر FCM نتواند پيام را قبل از انقضاء رساند ، اعلاني را به كلينت ارسال مي كند.

کتابخانه کلاینت FCM پیام را در برنامه سرویس گیرنده ذخیره می کند و هنگامی که سرویس گیرنده دارای یک سرور فعال است ، آن را ارسال می کند. با دریافت پیام ، FCM آن را به سرور برنامه ارسال می کند.

پیام های XMPP را در سرور برنامه دریافت کنید

وقتی FCM یک پیام پیام بالادستی را از یک برنامه سرویس گیرنده دریافت می کند ، بند XMPP لازم برای ارسال پیام بالادستی را ایجاد می کند. FCM می افزاید: category و from زمینه ها، و پس از آن یک بند مانند زیر به سرور برنامه می فرستد:

<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

در پاسخ به پیام بالادستی مانند موارد بالا ، سرور برنامه باید از همان اتصال برای ارسال پیام ACK حاوی شناسه پیام منحصر به فرد استفاده کند. اگر FCM ACK دریافت نکند ، ممکن است پیام را دوباره به سرور برنامه ارسال کند.

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

مراجعه کنید XMPP مرجع اتصال به سرور برای اطلاعات بیشتر در مورد نحو پیام بالادست.