একটি ইউনিটি ক্লায়েন্ট অ্যাপ থেকে আপস্ট্রিম বার্তা পাঠান

যদি আপনার অ্যাপ সার্ভার XMPP সংযোগ সার্ভার প্রোটোকল প্রয়োগ করে, তাহলে এটি ব্যবহারকারীর ডিভাইস থেকে ক্লাউডে আপস্ট্রিম বার্তাগুলি গ্রহণ করতে পারে। একটি আপস্ট্রিম বার্তা শুরু করতে, ক্লায়েন্ট অ্যাপ নিম্নলিখিতগুলি সম্বলিত একটি অনুরোধ পাঠায়:

  • SENDER_ID@fcm.googleapis.com ফরম্যাটে প্রাপক অ্যাপ সার্ভারের ঠিকানা।
  • একটি বার্তা আইডি যা প্রতিটি প্রেরকের আইডির জন্য অনন্য হওয়া উচিত।
  • বার্তার পেলোডের মূল-মান জোড়া সমন্বিত বার্তা ডেটা।

যখন এটি এই ডেটা গ্রহণ করে, FCM অ্যাপ সার্ভারে পাঠানোর জন্য একটি XMPP স্তবক তৈরি করে, পাঠানো ডিভাইস এবং অ্যাপ সম্পর্কে কিছু অতিরিক্ত তথ্য যোগ করে।

ইউনিটি ক্লায়েন্ট অ্যাপ থেকে একটি আপস্ট্রিম বার্তা পাঠান

সার্ভারে আপস্ট্রিম বার্তা পাঠাতে, একটি ইউনিটি ক্লায়েন্ট অ্যাপ একটি বার্তা রচনা করে এবং দেখানো হিসাবে 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);

কোথায়:

  • SENDER_ID@fcm.googleapis.com ফরম্যাটে message.To To গ্রহনকারী অ্যাপ সার্ভারের ঠিকানা।

  • 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 সংযোগ সার্ভার রেফারেন্স দেখুন।