FCM বার্তা সম্পর্কে

ফায়ারবেস ক্লাউড মেসেজিং (FCM) মেসেজিং বিকল্প এবং ক্ষমতার বিস্তৃত পরিসর অফার করে। এই পৃষ্ঠার তথ্যগুলি আপনাকে বিভিন্ন ধরণের FCM বার্তা এবং সেগুলির সাথে আপনি কী করতে পারেন তা বুঝতে সাহায্য করার উদ্দেশ্যে।

বার্তার ধরন

FCM এর মাধ্যমে, আপনি ক্লায়েন্টদের কাছে দুই ধরনের বার্তা পাঠাতে পারেন:

  • বিজ্ঞপ্তি বার্তা, কখনও কখনও "প্রদর্শন বার্তা" হিসাবে মনে করা হয়। এগুলি স্বয়ংক্রিয়ভাবে FCM SDK দ্বারা পরিচালিত হয়৷
  • ডেটা বার্তা, যা ক্লায়েন্ট অ্যাপ দ্বারা পরিচালিত হয়।

বিজ্ঞপ্তি বার্তাগুলিতে ব্যবহারকারী-দৃশ্যমান কীগুলির একটি পূর্বনির্ধারিত সেট থাকে। বিপরীতে, ডেটা বার্তাগুলিতে শুধুমাত্র আপনার ব্যবহারকারী-সংজ্ঞায়িত কাস্টম কী-মান জোড়া থাকে। বিজ্ঞপ্তি বার্তাগুলিতে একটি ঐচ্ছিক ডেটা পেলোড থাকতে পারে। উভয় বার্তা প্রকারের জন্য সর্বাধিক পেলোড হল 4000 বাইট, Firebase কনসোল থেকে বার্তা পাঠানো ছাড়া, যা একটি 1024 অক্ষর সীমা প্রয়োগ করে৷

দৃশ্যকল্প ব্যবহার করুন কীভাবে পাঠাবো
বিজ্ঞপ্তি বার্তা FCM স্বয়ংক্রিয়ভাবে ক্লায়েন্ট অ্যাপের পক্ষে শেষ-ব্যবহারকারী ডিভাইসগুলিতে বার্তাটি প্রদর্শন করে। বিজ্ঞপ্তি বার্তাগুলিতে ব্যবহারকারী-দৃশ্যমান কীগুলির একটি পূর্বনির্ধারিত সেট এবং কাস্টম কী-মানের জোড়াগুলির একটি ঐচ্ছিক ডেটা পেলোড থাকে।
  1. যেমন একটি বিশ্বস্ত পরিবেশে ক্লাউড কার্যাবলী বা আপনার অ্যাপ্লিকেশন সার্ভার, ব্যবহার এডমিন SDK এর বা FCM সার্ভার প্রোটোকল সেট: notification কী। ঐচ্ছিক ডেটা পেলোড থাকতে পারে। সর্বদা কোলাপসিবল।

    কিছু দেখতে বিজ্ঞপ্তিগুলি দেখান উদাহরণ এবং সেন্ড অনুরোধ প্লেলোডগুলি।

  2. ব্যবহার করুন বিজ্ঞপ্তিগুলি সুরকার : বার্তা টেক্সট, শিরোনাম, ইত্যাদি লিখুন, এবং পাঠিয়ে দিন। কাস্টম ডেটা প্রদান করে ঐচ্ছিক ডেটা পেলোড যোগ করুন।
ডেটা বার্তা ক্লায়েন্ট অ্যাপ ডেটা বার্তা প্রক্রিয়াকরণের জন্য দায়ী। ডেটা বার্তাগুলিতে কোনও সংরক্ষিত কী নাম ছাড়াই কেবল কাস্টম কী-মানের জোড়া থাকে (নীচে দেখুন)। যেমন একটি বিশ্বস্ত পরিবেশে ক্লাউড কার্যাবলী বা আপনার অ্যাপ্লিকেশন সার্ভার, ব্যবহার এডমিন SDK এর বা FCM সার্ভার প্রোটোকল সেট: data শুধুমাত্র কী।

আপনি যখন FCM আপনার ক্লায়েন্ট অ্যাপের পক্ষ থেকে একটি বিজ্ঞপ্তি প্রদর্শন পরিচালনা করতে চান তখন বিজ্ঞপ্তি বার্তাগুলি ব্যবহার করুন৷ আপনি যখন আপনার ক্লায়েন্ট অ্যাপে বার্তাগুলি প্রক্রিয়া করতে চান তখন ডেটা বার্তাগুলি ব্যবহার করুন৷

FCM একটি ঐচ্ছিক ডেটা পেলোড সহ একটি বিজ্ঞপ্তি বার্তা পাঠাতে পারে৷ এই ধরনের ক্ষেত্রে, এফসিএম বিজ্ঞপ্তি পেলোড প্রদর্শন করে এবং ক্লায়েন্ট অ্যাপ ডেটা পেলোড পরিচালনা করে।

বিজ্ঞপ্তি বার্তা

পরীক্ষা বা বিপণনের এবং ব্যবহারকারী পুনরায় প্রবৃত্তি জন্য, আপনি পারেন Firebase কনসোল ব্যবহার বিজ্ঞপ্তি বার্তা পাঠান । Firebase কনসোল বিশ্লেষণ ভিত্তিক উপলব্ধ A / B পরীক্ষা এবং সাহায্যের আপনি পরিমার্জন করা বিপণন সংক্রান্ত বার্তা উন্নত।

এডমিন SDK এর বা FCM প্রোটোকল ব্যবহার প্রোগ্রামেটিক্যালি পাঠাতে বিজ্ঞপ্তি বার্তা করার জন্য, সেট notification প্রজ্ঞাপন বার্তা জন্য ব্যবহারকারীর কাছে দৃশ্যমান অংশ জন্য কী-মান অপশনের প্রয়োজনীয় পূর্বনির্ধারিত সেট দিয়ে কী। উদাহরণস্বরূপ, এখানে একটি IM অ্যাপে একটি JSON- ফরম্যাট করা বিজ্ঞপ্তি বার্তা রয়েছে৷ ব্যবহারকারী "পর্তুগাল বনাম ডেনমার্ক" শিরোনাম সহ একটি বার্তা দেখার আশা করতে পারেন এবং "দারুণ ম্যাচ!" ডিভাইসে:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

অ্যাপ্লিকেশানটি ব্যাকগ্রাউন্ডে থাকলে বিজ্ঞপ্তি বার্তাগুলি বিজ্ঞপ্তি ট্রেতে বিতরণ করা হয়। অগ্রভাগে থাকা অ্যাপগুলির জন্য, বার্তাগুলি একটি কলব্যাক ফাংশন দ্বারা পরিচালিত হয়৷

বিজ্ঞপ্তি বার্তা তৈরির জন্য উপলব্ধ পূর্বনির্ধারিত কীগুলির সম্পূর্ণ তালিকার জন্য রেফারেন্স ডকুমেন্টেশন দেখুন:

ডেটা বার্তা

ক্লায়েন্ট অ্যাপে ডেটা পেলোড পাঠাতে আপনার কাস্টম কী-মানের জোড়ার সাথে উপযুক্ত কী সেট করুন।

উদাহরণস্বরূপ, এখানে একই আইএম অ্যাপ্লিকেশানে একটি JSON- বিন্যস্ত বার্তা সর্বোপরি, যেখানে তথ্য কমন encapsulated হয় হিসাবে data কী এবং ক্লায়েন্ট অ্যাপ্লিকেশন বিষয়বস্তু ব্যাখ্যা করার জন্য বলে আশা করা হচ্ছে:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}

টপ লেভেল, অথবা সাধারণ এর উপরোক্ত উদাহরণে শো ব্যবহারের data ক্ষেত্র, যা সব প্ল্যাটফর্মের যে বার্তা উপর ক্লায়েন্টদের দ্বারা ব্যাখ্যা করা হয়। প্রতিটি প্ল্যাটফর্মে, ক্লায়েন্ট অ্যাপ কলব্যাক ফাংশনে ডেটা পেলোড গ্রহণ করে।

ডেটা বার্তাগুলির জন্য এনক্রিপশন

অ্যান্ড্রয়েড ট্রান্সপোর্ট লেয়ার (দেখুন FCM স্থাপত্য ) পয়েন্ট-টু-পয়েন্ট এনক্রিপশন ব্যবহার করে। আপনার প্রয়োজনের উপর নির্ভর করে, আপনি ডেটা বার্তাগুলিতে এন্ড-টু-এন্ড এনক্রিপশন যোগ করার সিদ্ধান্ত নিতে পারেন। FCM একটি এন্ড-টু-এন্ড সমাধান প্রদান করে না। যাইহোক, যেমন বাহ্যিক সমাধান পাওয়া যায় কৈশিক বা DTLS

ঐচ্ছিক ডেটা পেলোড সহ বিজ্ঞপ্তি বার্তা

প্রোগ্রামগতভাবে বা Firebase কনসোলের মাধ্যমে, আপনি কাস্টম কী-মান জোড়ার ঐচ্ছিক পেলোড ধারণ করে এমন বিজ্ঞপ্তি বার্তা পাঠাতে পারেন। ইন বিজ্ঞপ্তিগুলি সুরকার , উন্নত বিকল্প কাস্টম তথ্য ক্ষেত্র ব্যবহার করুন।

বিজ্ঞপ্তি এবং ডেটা পেলোড উভয়ই অন্তর্ভুক্ত করে এমন বার্তাগুলি পাওয়ার সময় অ্যাপের আচরণ নির্ভর করে অ্যাপটি ব্যাকগ্রাউন্ডে আছে নাকি ফোরগ্রাউন্ডে - মূলত, প্রাপ্তির সময় এটি সক্রিয় কিনা।

  • যখন পটভূমিতে, অ্যাপ্স বিজ্ঞপ্তির ট্রেতে প্রজ্ঞাপন পে লোড গ্রহণ, এবং শুধুমাত্র ডেটা পেলোড হ্যান্ডেল তখন ব্যবহারকারী বিজ্ঞপ্তিতে যে taps।
  • যখন পুরোভূমিতে, আপনার অ্যাপ্লিকেশন উভয় প্লেলোডগুলি উপলব্ধ একটি বার্তা বস্তুর পায়।

এখানে একটি JSON- বিন্যস্ত উভয় ধারণকারী বার্তাটি notification কী এবং data কী:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }
}

প্ল্যাটফর্ম জুড়ে একটি বার্তা কাস্টমাইজ করা

Firebase এডমিন SDK এর এবং FCM v1 এ HTTP প্রোটোকলের উভয় আপনার বার্তা অনুরোধ সব ক্ষেত্র পাওয়া সেট করার অনুমতি message অবজেক্ট। এটা অন্তর্ভুক্ত:

  • ক্ষেত্র একটি সাধারণ সেট সব অ্যাপ্লিকেশান দৃষ্টান্ত যে বার্তা ব্যাখ্যা করতে হবে।
  • যেমন ক্ষেত্র, প্ল্যাটফর্ম-নির্দিষ্ট সেট AndroidConfig এবং WebpushConfig নির্দিষ্ট প্ল্যাটফর্মে চলমান অ্যাপ্লিকেশান দৃষ্টান্ত কেবল বুঝিয়ে দিলেন।

প্ল্যাটফর্ম-নির্দিষ্ট ব্লকগুলি আপনাকে বিভিন্ন প্ল্যাটফর্মের জন্য বার্তাগুলি কাস্টমাইজ করার নমনীয়তা দেয় যাতে প্রাপ্তির সময় সেগুলি সঠিকভাবে পরিচালনা করা হয়। FCM ব্যাকএন্ড সমস্ত নির্দিষ্ট পরামিতি বিবেচনা করবে এবং প্রতিটি প্ল্যাটফর্মের জন্য বার্তাটি কাস্টমাইজ করবে।

কখন সাধারণ ক্ষেত্র ব্যবহার করবেন

সাধারণ ক্ষেত্রগুলি ব্যবহার করুন যখন আপনি:

  • সব প্ল্যাটফর্মে অ্যাপ্লিকেশন দৃষ্টান্ত টার্গেটিং - আপেল, অ্যান্ড্রয়েড, এবং ওয়েব
  • বিষয় বার্তা পাঠানো

সমস্ত অ্যাপ্লিকেশন উদাহরণ, প্ল্যাটফর্ম নির্বিশেষে, নিম্নলিখিত সাধারণ ক্ষেত্রগুলিকে ব্যাখ্যা করতে পারে:

কখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্র ব্যবহার করবেন

আপনি যখন চান তখন প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্র ব্যবহার করুন:

  • শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মে ক্ষেত্র পাঠান
  • সাধারণ ক্ষেত্র ছাড়াও প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্র পাঠান

যখনই আপনি শুধুমাত্র নির্দিষ্ট প্ল্যাটফর্মে মান পাঠাতে, সাধারণ ক্ষেত্র ব্যবহার করতে চাই না; প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্র ব্যবহার করুন। উদাহরণস্বরূপ, শুধুমাত্র Apple প্ল্যাটফর্ম এবং ওয়েবে একটি বিজ্ঞপ্তি পাঠাতে কিন্তু Android এ নয়, আপনাকে অবশ্যই দুটি পৃথক ক্ষেত্র ব্যবহার করতে হবে, একটি Apple এর জন্য এবং একটি ওয়েবের জন্য৷

আপনি নির্দিষ্ট বার্তাগুলি প্রেরণ করছেন যখন প্রদান বিকল্প , ব্যবহার প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্র তাদের সেট করতে। আপনি চাইলে প্ল্যাটফর্ম প্রতি বিভিন্ন মান নির্দিষ্ট করতে পারেন। যাইহোক, এমনকি যখন আপনি প্ল্যাটফর্ম জুড়ে অপরিহার্যভাবে একই মান সেট করতে চান, আপনাকে অবশ্যই প্ল্যাটফর্ম-নির্দিষ্ট ক্ষেত্র ব্যবহার করতে হবে। এই যখন অ্যাপল তে এটি একটি মেয়াদ শেষের তারিখ হিসাবে সেট করা হয়, কারণ প্রতিটি প্ল্যাটফর্ম মান সামান্য ভিন্নভাবে-উদাহরণস্বরূপ, সময় টু লাইভ Android এর উপর সেকেন্ডের মধ্যে একটি মেয়াদ শেষ হওয়ার সময় যেমন সেট করা হয় ব্যাখ্যা করা হতে পারে।

উদাহরণ: প্ল্যাটফর্ম-নির্দিষ্ট ডেলিভারি বিকল্প সহ বিজ্ঞপ্তি বার্তা

নিম্নলিখিত v1 প্রেরণের অনুরোধটি সমস্ত প্ল্যাটফর্মে একটি সাধারণ বিজ্ঞপ্তি শিরোনাম এবং সামগ্রী পাঠায়, তবে কিছু প্ল্যাটফর্ম-নির্দিষ্ট ওভাররাইডও পাঠায়। বিশেষ করে, অনুরোধ:

  • অ্যান্ড্রয়েড এবং ওয়েব প্ল্যাটফর্মের জন্য দীর্ঘ সময়-টু-লাইভ সেট করে, যখন APNs (অ্যাপল প্ল্যাটফর্ম) বার্তা অগ্রাধিকার কম সেটিংয়ে সেট করে
  • উপযুক্ত কি সেট করে Android এবং Apple বিজ্ঞপ্তি একজন ব্যবহারকারী আলতো চাপুন ফল নির্ধারণ করতে - click_action , এবং category যথাক্রমে।
{
  "message":{
     "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
     "notification":{
       "title":"Match update",
       "body":"Arsenal goal in added time, score is now 3-0"
     },
     "android":{
       "ttl":"86400s",
       "notification"{
         "click_action":"OPEN_ACTIVITY_1"
       }
     },
     "apns": {
       "headers": {
         "apns-priority": "5",
       },
       "payload": {
         "aps": {
           "category": "NEW_MESSAGE_CATEGORY"
         }
       }
     },
     "webpush":{
       "headers":{
         "TTL":"86400"
       }
     }
   }
 }

দেখুন HTTP- র v1 এ রেফারেন্স ডকুমেন্টেশন বার্তার মূল অংশে কী প্ল্যাটফর্ম-নির্দিষ্ট ব্লক পাওয়া সম্পূর্ণ বিবরণের জন্য। পাঠান অনুরোধ বার্তার মূল থাকে, দেখতে বিল্ডিং সম্পর্কে আরও তথ্যের জন্য বিল্ড পাঠান অনুরোধ

সরবরাহের সুযোগ

এফসিএম অ্যান্ড্রয়েড ডিভাইসে প্রেরিত বার্তাগুলির জন্য ডেলিভারি বিকল্পগুলির একটি নির্দিষ্ট সেট সরবরাহ করে এবং অ্যাপল প্ল্যাটফর্ম এবং ওয়েবে অনুরূপ বিকল্পগুলির জন্য অনুমতি দেয়। উদাহরণস্বরূপ, "কলাপসিবল" বার্তা আচরণ Android এর উপর FCM এর মাধ্যমে সমর্থিত collapse_key মাধ্যমে অ্যাপল উপর apns-collapse-id মাধ্যমে জাভাস্ক্রিপ্ট / ওয়েবে, এবং Topic । বিশদ বিবরণের জন্য, এই বিভাগে বিবরণ এবং সম্পর্কিত রেফারেন্স ডকুমেন্টেশন দেখুন।

অ-সংকোচনযোগ্য এবং সংকোচনযোগ্য বার্তা

একটি অ কলাপসিবল বার্তা দ্বারা বোঝানো হয় যে প্রত্যেক ব্যক্তির স্বতন্ত্র বার্তাগুলির ডিভাইসে বিতরণ করা হয়। একটি অ-সংকোচনযোগ্য বার্তা কিছু দরকারী সামগ্রী সরবরাহ করে, যেমন একটি সংকোচনযোগ্য বার্তার বিপরীতে একটি সামগ্রী-মুক্ত "পিং" মোবাইল অ্যাপে ডেটা আনার জন্য সার্ভারের সাথে যোগাযোগ করতে।

অ-সংকোচনযোগ্য বার্তাগুলির কিছু সাধারণ ব্যবহারের ক্ষেত্রে চ্যাট বার্তা বা সমালোচনামূলক বার্তা। উদাহরণস্বরূপ, একটি IM অ্যাপে, আপনি প্রতিটি বার্তা সরবরাহ করতে চান, কারণ প্রতিটি বার্তায় আলাদা বিষয়বস্তু থাকে।

অ্যান্ড্রয়েডের জন্য 100টি বার্তার একটি সীমা রয়েছে যা ভেঙে না পড়ে সংরক্ষণ করা যেতে পারে৷ সীমা পৌঁছে গেলে, সমস্ত সঞ্চিত বার্তা বাতিল করা হয়। যখন ডিভাইসটি অনলাইনে ফিরে আসে, তখন এটি একটি বিশেষ বার্তা পায় যা নির্দেশ করে যে সীমা পৌঁছে গেছে। অ্যাপটি তখন পরিস্থিতিটি সঠিকভাবে পরিচালনা করতে পারে, সাধারণত অ্যাপ সার্ভার থেকে সম্পূর্ণ সিঙ্কের অনুরোধ করে।

একটি কলাপসিবল বার্তা একটি বার্তা একটি নতুন বার্তা দ্বারা প্রতিস্থাপিত হতে পারে এটা এখনো ডিভাইসে সরবরাহ করা হয়েছে।

সংকোচনযোগ্য বার্তাগুলির একটি সাধারণ ব্যবহারের ক্ষেত্রে সার্ভার থেকে ডেটা সিঙ্ক করতে একটি মোবাইল অ্যাপকে বলার জন্য ব্যবহৃত বার্তাগুলি। একটি উদাহরণ একটি স্পোর্টস অ্যাপ যা ব্যবহারকারীদের সর্বশেষ স্কোর দিয়ে আপডেট করে। শুধুমাত্র সাম্প্রতিক বার্তাটি প্রাসঙ্গিক।

Android এর উপর কলাপসিবল যেমন একটি বার্তা চিহ্নিত করার জন্য, অন্তর্ভুক্ত collapse_key বার্তা পে লোড মধ্যে প্যারামিটার। ডিফল্টরূপে, ফায়ারবেস কনসোলে নিবন্ধিত অ্যাপ প্যাকেজের নাম হল কোল্যাপস কী। এফসিএম সার্ভার একযোগে প্রতি ডিভাইসে চারটি ভিন্ন কলাপসিবল মেসেজ সঞ্চয় করতে পারে, প্রতিটিতে একটি আলাদা কোলাপস কী রয়েছে। আপনি যদি এই সংখ্যাটি অতিক্রম করেন, FCM শুধুমাত্র চারটি সংকোচন কী রাখে, কোনটি রাখা হবে তার কোনো নিশ্চয়তা নেই।

কোন পেলোড ছাড়া বিষয় বার্তা ডিফল্টরূপে সংকোচনযোগ্য.

আমি কোনটি ব্যবহার করা উচিত?

সংকোচনযোগ্য বার্তাগুলি পারফরম্যান্সের দৃষ্টিকোণ থেকে একটি ভাল পছন্দ, যদি আপনার অ্যাপটিকে অ-সংকোচনযোগ্য বার্তাগুলি ব্যবহার করার প্রয়োজন না হয়। যাইহোক, যদি আপনি কলাপসিবল মেসেজ ব্যবহার করেন, মনে রাখবেন যে FCM শুধুমাত্র যেকোন সময়ে রেজিস্ট্রেশন টোকেন প্রতি FCM দ্বারা সর্বাধিক চারটি ভিন্ন কম্পন কী ব্যবহার করার অনুমতি দেয়। আপনি অবশ্যই এই সংখ্যা অতিক্রম করবেন না, বা এটি অপ্রত্যাশিত পরিণতি ঘটাতে পারে।

দৃশ্যকল্প ব্যবহার করুন কীভাবে পাঠাবো
অ-কলাপসিবল প্রতিটি বার্তা ক্লায়েন্ট অ্যাপের জন্য গুরুত্বপূর্ণ এবং বিতরণ করা প্রয়োজন। বিজ্ঞপ্তি বার্তা ছাড়া, সমস্ত বার্তা ডিফল্টরূপে অ-সংকোচনযোগ্য।
কলাপসিবল যখন একটি নতুন বার্তা থাকে যা একটি পুরানো, সম্পর্কিত বার্তাটিকে ক্লায়েন্ট অ্যাপের সাথে অপ্রাসঙ্গিক করে, তখন FCM পুরানো বার্তাটিকে প্রতিস্থাপন করে৷ উদাহরণস্বরূপ: সার্ভার থেকে ডেটা সিঙ্ক শুরু করতে ব্যবহৃত বার্তাগুলি, বা পুরানো বিজ্ঞপ্তি বার্তা৷ আপনার বার্তা অনুরোধে উপযুক্ত প্যারামিটার সেট করুন:
  • collapseKey Android এর উপর
  • apns-collapse-id অ্যাপল
  • Topic ওয়েবে
  • collapse_key উত্তরাধিকার প্রোটোকল মধ্যে (সমস্ত প্ল্যাটফর্মের)

একটি বার্তা অগ্রাধিকার সেট করা

অ্যান্ড্রয়েডে ডাউনস্ট্রিম মেসেজগুলিতে ডেলিভারি অগ্রাধিকার দেওয়ার জন্য আপনার কাছে দুটি বিকল্প রয়েছে: স্বাভাবিক এবং উচ্চ অগ্রাধিকার৷ স্বাভাবিক এবং উচ্চ অগ্রাধিকার বার্তাগুলির বিতরণ এই মত কাজ করে:

  • স্বাভাবিক অগ্রাধিকার। এই জন্য ডিফল্ট অগ্রাধিকার ডেটা বার্তা । অ্যাপটি অগ্রভাগে থাকলে সাধারণ অগ্রাধিকার বার্তাগুলি অবিলম্বে বিতরণ করা হয়। যখন ডিভাইসটি Doze এ থাকে, তখন ব্যাটারি সংরক্ষণের জন্য ডেলিভারি বিলম্বিত হতে পারে। কম সময়-সংবেদনশীল বার্তাগুলির জন্য, যেমন নতুন ইমেলের বিজ্ঞপ্তি, আপনার UI সিঙ্কে রাখা বা ব্যাকগ্রাউন্ডে অ্যাপ ডেটা সিঙ্ক করা, স্বাভাবিক বিতরণ অগ্রাধিকার বেছে নিন।

    যখন যে আপনার অ্যাপের জন্য একটি ব্যাকগ্রাউন্ড ডেটা সিঙ্ক অনুরোধ Android এর উপর একটি স্বাভাবিক অগ্রাধিকার বার্তাটি পাচ্ছেন, আপনার সাথে একটি টাস্ক নির্ধারিত করতে পারেন WorkManager যখন নেটওয়ার্ক উপলব্ধ এটি পরিচালনা করা হয়।

  • বেশি অগ্রাধিকার. FCM অবিলম্বে উচ্চ অগ্রাধিকার বার্তাগুলি সরবরাহ করার চেষ্টা করে, FCM যখন প্রয়োজনে একটি ঘুমন্ত ডিভাইসকে জাগিয়ে তুলতে এবং কিছু সীমিত প্রক্রিয়াকরণ (খুব সীমিত নেটওয়ার্ক অ্যাক্সেস সহ) চালানোর অনুমতি দেয়। উচ্চ অগ্রাধিকারের বার্তাগুলি সাধারণত আপনার অ্যাপ বা এর বিজ্ঞপ্তিগুলির সাথে ব্যবহারকারীর ইন্টারঅ্যাকশনের ফলে হওয়া উচিত। যদি এফসিএম এমন একটি প্যাটার্ন শনাক্ত করে যেখানে তারা তা করে না, তাহলে আপনার বার্তাগুলিকে অগ্রাধিকার না দেওয়া হতে পারে। অ্যান্ড্রয়েড পি চালু অ্যাপ্লিকেশান স্ট্যান্ডবাই বাকেট যা FCM উচ্চ অগ্রাধিকার বার্তার সংখ্যা সীমিত আপনি আপনার অ্যাপ্লিকেশন যে আপনার অ্যাপ ব্যবহার বা একটি বিজ্ঞপ্তি দেখার ব্যবহারকারী ফলে না পাঠাতে পারেন। যদি, একটি উচ্চ অগ্রাধিকার বার্তার প্রতিক্রিয়া হিসাবে, একটি বিজ্ঞপ্তি এমনভাবে প্রদর্শিত হয় যা ব্যবহারকারীর কাছে দৃশ্যমান হয়, তাহলে আপনার অ্যাপ স্ট্যান্ডবাই বাকেট কোটা সেই বার্তার দ্বারা গ্রাস করা হবে না।

    কারণ অ্যান্ড্রয়েড মোবাইল জনসংখ্যার একটি ছোট অংশ উচ্চ লেটেন্সি নেটওয়ার্কে রয়েছে, একটি বিজ্ঞপ্তি প্রদর্শন করার আগে আপনার সার্ভারে একটি সংযোগ খোলা এড়িয়ে চলুন। অনুমোদিত প্রক্রিয়াকরণের সময় শেষ হওয়ার আগে সার্ভারে ফিরে কল করা উচ্চ লেটেন্সি নেটওয়ার্কের ব্যবহারকারীদের জন্য ঝুঁকিপূর্ণ হতে পারে। পরিবর্তে, FCM বার্তায় বিজ্ঞপ্তি বিষয়বস্তু অন্তর্ভুক্ত করুন এবং অবিলম্বে এটি প্রদর্শন করুন৷ আপনি Android এর উপর অতিরিক্ত অ্যাপ-মধ্যস্থ বিষয়বস্তুর জন্য সিঙ্ক করার প্রয়োজন হলে, আপনার সাথে একটি টাস্ক নির্ধারিত করতে পারেন WorkManager যে হ্যান্ডেল করতে পটভূমিতে।

এখানে একটি সাধারণ অগ্রাধিকার বার্তার একটি উদাহরণ রয়েছে যা FCM HTTP v1 প্রোটোকলের মাধ্যমে একটি ম্যাগাজিন গ্রাহককে জানানোর জন্য পাঠানো হয়েছে যে নতুন সামগ্রী ডাউনলোড করার জন্য উপলব্ধ:

{
  "message":{
    "topic":"subscriber-updates",
    "notification":{
      "body" : "This week's edition is now available.",
      "title" : "NewsMagazine.com",
    },
    "data" : {
      "volume" : "3.21.15",
      "contents" : "http://www.news-magazine.com/world-week/21659772"
    },
    "android":{
      "priority":"normal"
    },
    "apns":{
      "headers":{
        "apns-priority":"5"
      }
    },
    "webpush": {
      "headers": {
        "Urgency": "high"
      }
    }
  }
}

বার্তা অগ্রাধিকার সেট করার বিষয়ে আরও প্ল্যাটফর্ম-নির্দিষ্ট বিশদ বিবরণের জন্য:

একটি বার্তার জীবনকাল সেট করা হচ্ছে

FCM সাধারণত মেসেজ পাঠানোর সাথে সাথেই ডেলিভারি করে। যাইহোক, এটি সবসময় সম্ভব নাও হতে পারে। উদাহরণস্বরূপ, যদি প্ল্যাটফর্মটি Android হয়, তাহলে ডিভাইসটি বন্ধ, অফলাইন বা অন্যথায় অনুপলব্ধ হতে পারে। অথবা এফসিএম ইচ্ছাকৃতভাবে বার্তাগুলিকে বিলম্বিত করতে পারে যাতে একটি অ্যাপকে অত্যধিক সংস্থান গ্রহণ করা থেকে এবং ব্যাটারির জীবনকে নেতিবাচকভাবে প্রভাবিত করা থেকে বিরত রাখতে পারে।

যখন এটি ঘটে, FCM বার্তাটি সঞ্চয় করে এবং যত তাড়াতাড়ি এটি সম্ভব হয় তত তাড়াতাড়ি বিতরণ করে৷ যদিও এটি বেশিরভাগ ক্ষেত্রেই ঠিক থাকে, তবে কিছু অ্যাপ রয়েছে যার জন্য দেরী বার্তা কখনই বিতরণ করা যাবে না। উদাহরণস্বরূপ, যদি বার্তাটি একটি ইনকামিং কল বা ভিডিও চ্যাট বিজ্ঞপ্তি হয়, তবে কলটি বন্ধ হওয়ার আগে এটি শুধুমাত্র অল্প সময়ের জন্য অর্থবহ৷ অথবা যদি বার্তাটি একটি ইভেন্টের আমন্ত্রণ হয়, ইভেন্ট শেষ হওয়ার পরে প্রাপ্ত হলে তা অকেজো।

অ্যান্ড্রয়েড এবং ওয়েব/জাভাস্ক্রিপ্টে, আপনি একটি বার্তার সর্বোচ্চ আয়ুষ্কাল নির্দিষ্ট করতে পারেন। মানটি অবশ্যই 0 থেকে 2,419,200 সেকেন্ড (28 দিন) সময়কালের হতে হবে এবং এটি FCM সঞ্চয় করে এবং বার্তা প্রদানের প্রচেষ্টার সর্বোচ্চ সময়ের সাথে সামঞ্জস্যপূর্ণ। অনুরোধ যে এই ক্ষেত্রটি ডিফল্ট চার সপ্তাহের সর্বোচ্চ সময়ের জন্য ধারণ করে না।

এই বৈশিষ্ট্যটির জন্য এখানে কিছু সম্ভাব্য ব্যবহার রয়েছে:

  • ভিডিও চ্যাট ইনকামিং কল
  • আমন্ত্রণ ইভেন্টের মেয়াদ শেষ হচ্ছে
  • ক্যালেন্ডার ইভেন্ট

একটি বার্তার জীবনকাল নির্দিষ্ট করার আরেকটি সুবিধা হল যে FCM কখনই 0 সেকেন্ডের টাইম-টু-লাইভ মান সহ বার্তাগুলিকে থ্রোটল করে না। অন্য কথায়, FCM বার্তাগুলির জন্য সর্বোত্তম প্রচেষ্টার গ্যারান্টি দেয় যেগুলি অবশ্যই "এখন বা কখনই" বিতরণ করা উচিত। মনে রাখবেন যে একটি time_to_live যে অবিলম্বে প্রদান করা যায় 0 মানে বার্তা মান বাতিল করা হয়। যাইহোক, যেহেতু এই ধরনের বার্তাগুলি কখনই সংরক্ষণ করা হয় না, এটি বিজ্ঞপ্তি বার্তাগুলি পাঠানোর জন্য সর্বোত্তম লেটেন্সি প্রদান করে৷

এখানে একটি অনুরোধের একটি উদাহরণ রয়েছে যা TTL অন্তর্ভুক্ত করে:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    },
    "apns":{
      "headers":{
        "apns-expiration":"1604750400"
      }
    },
    "android":{
      "ttl":"4500s"
    },
    "webpush":{
      "headers":{
        "TTL":"4500"
      }
    }
  }
}

একাধিক প্রেরকের কাছ থেকে বার্তা গ্রহণ করা হচ্ছে

FCM একাধিক পক্ষকে একই ক্লায়েন্ট অ্যাপে বার্তা পাঠাতে অনুমতি দেয়। উদাহরণস্বরূপ, ধরুন ক্লায়েন্ট অ্যাপটি একাধিক অবদানকারী সহ একটি নিবন্ধ সমষ্টিকারী, এবং তাদের প্রত্যেকে একটি নতুন নিবন্ধ প্রকাশ করার সময় একটি বার্তা পাঠাতে সক্ষম হওয়া উচিত। এই বার্তাটিতে একটি URL থাকতে পারে যাতে ক্লায়েন্ট অ্যাপ নিবন্ধটি ডাউনলোড করতে পারে। সমস্ত প্রেরণ কার্যকলাপকে এক স্থানে কেন্দ্রীভূত করার পরিবর্তে, FCM আপনাকে এই অবদানকারীদের প্রত্যেককে নিজস্ব বার্তা পাঠাতে দেওয়ার ক্ষমতা দেয়।

এই বৈশিষ্ট্যটি সক্ষম করতে, নিশ্চিত করুন যে আপনি প্রতিটি প্রেরকের আছে কি না নিশ্চিত প্রেরক আইডি । নিবন্ধনের অনুরোধ করার সময়, ক্লায়েন্ট অ্যাপ প্রদত্ত প্ল্যাটফর্মের জন্য টোকেন পুনরুদ্ধার পদ্ধতি ব্যবহার করে, শ্রোতা ক্ষেত্রের মধ্যে একটি ভিন্ন প্রেরক আইডি সহ একাধিকবার টোকেন নিয়ে আসে:

নিশ্চিত করুন যে আপনি একটি একক টোকেন অনুরোধ একাধিক প্রেরক ID- র জুড়বেন না, এই অনিশ্চিত ফলাফল থাকতে পারে তা নিশ্চিত করুন। প্রতিটি কল আলাদাভাবে করুন, প্রেরকের আইডি প্রতি একবার।

অবশেষে, সংশ্লিষ্ট প্রেরকদের সাথে নিবন্ধন টোকেন ভাগ করুন, এবং তারা তাদের নিজস্ব প্রমাণীকরণ কী ব্যবহার করে ক্লায়েন্ট অ্যাপে বার্তা পাঠাতে সক্ষম হবে।

উল্লেখ্য যে 100 একাধিক প্রেরকের সীমা আছে।

একটি বার্তা আজীবন

যখন একটি অ্যাপ সার্ভার এফসিএম-এ একটি বার্তা পোস্ট করে এবং একটি বার্তা আইডি ফিরে পায়, তার মানে এই নয় যে বার্তাটি ইতিমধ্যেই ডিভাইসে পৌঁছে দেওয়া হয়েছে৷ বরং, এর অর্থ হল এটি প্রসবের জন্য গ্রহণ করা হয়েছিল। বার্তাটি গ্রহণ করার পরে কী হবে তা অনেক কারণের উপর নির্ভর করে।

সর্বোত্তম ক্ষেত্রে, যদি ডিভাইসটি FCM-এর সাথে সংযুক্ত থাকে, স্ক্রীনটি চালু থাকে এবং কোনো থ্রটলিং বিধিনিষেধ নেই, তাহলে বার্তাটি অবিলম্বে বিতরণ করা হয়।

যদি ডিভাইসটি সংযুক্ত থাকে তবে Doze-এ, ডিভাইসটি Doze এর বাইরে না হওয়া পর্যন্ত FCM দ্বারা একটি কম অগ্রাধিকার বার্তা সংরক্ষণ করা হয়। এবং যে কোথায় collapse_key পতাকা একটি ভূমিকা পালন করে: যদি ইতিমধ্যেই একই পতন কী (এবং রেজিস্ট্রেশন টোকেন) সংরক্ষিত হয় এবং প্রসবের জন্য অপেক্ষা সঙ্গে একটি বার্তা, পুরাতন বার্তাটি বাতিল করা হয়েছে নতুন বার্তা যথাস্থানে (যেমন, পুরাতন লাগে বার্তাটি নতুনটির দ্বারা ভেঙে পড়েছে)। যাইহোক, যদি পতন কী সেট করা না থাকে, তাহলে নতুন এবং পুরানো উভয় বার্তাই ভবিষ্যতে ডেলিভারির জন্য সংরক্ষণ করা হয়।

যদি ডিভাইসটি এফসিএম-এর সাথে সংযুক্ত না থাকে, একটি সংযোগ স্থাপন না হওয়া পর্যন্ত বার্তাটি সংরক্ষণ করা হয় (পুনরায় পতনের মূল নিয়মগুলিকে সম্মান করে)। যখন একটি সংযোগ স্থাপন করা হয়, তখন FCM সমস্ত মুলতুবি বার্তাগুলি ডিভাইসে সরবরাহ করে৷ যদি ডিভাইসটি আর কখনও সংযুক্ত না হয় (উদাহরণস্বরূপ, যদি এটি ফ্যাক্টরি রিসেট হয়), বার্তাটি শেষ পর্যন্ত শেষ হয়ে যায় এবং FCM স্টোরেজ থেকে বাতিল করা হয়। যদি না ডিফল্ট সময়সীমার চার সপ্তাহ time_to_live পতাকা সেট করা হয়।

একটি বার্তা বিতরণ সম্পর্কে আরও অন্তর্দৃষ্টি পেতে:

    অ্যান্ড্রয়েড বা Apple প্ল্যাটফর্মের বার্তা বিতরণ মধ্যে আরো অন্তর্দৃষ্টি পেতে, দেখতে FCM প্রতিবেদন ড্যাশবোর্ড , যা বার্তার সংখ্যা জন্য "ইমপ্রেশন" (বিজ্ঞপ্তিগুলি ব্যবহারকারীরা দেখেছেন) জন্য পাঠিয়ে অ্যাপল এবং অ্যান্ড্রয়েড ডিভাইসের খোলা, ডাটা সহ রেকর্ড অ্যান্ড্রয়েড অ্যাপস।

সরাসরি চ্যানেল মেসেজিং সক্ষম থাকা Android ডিভাইসগুলির জন্য, যদি ডিভাইসটি এক মাসের বেশি সময় ধরে FCM-এর সাথে সংযুক্ত না থাকে, FCM এখনও বার্তাটি গ্রহণ করে কিন্তু অবিলম্বে এটিকে বাতিল করে দেয়। ডিভাইস আপনি এটা পাঠানো গত ডেটা বার্তার চার সপ্তাহের মধ্যে সংযোগ স্থাপন করে, তাহলে আপনার ক্লায়েন্ট পায় onDeletedMessages () কলব্যাক। অ্যাপটি তখন পরিস্থিতিটি সঠিকভাবে পরিচালনা করতে পারে, সাধারণত অ্যাপ সার্ভার থেকে সম্পূর্ণ সিঙ্কের অনুরোধ করে।

অবশেষে, যখন এফসিএম ডিভাইসে একটি বার্তা দেওয়ার চেষ্টা করে এবং অ্যাপটি আনইনস্টল করা হয়, তখন এফসিএম সেই বার্তাটি অবিলম্বে বাতিল করে দেয় এবং নিবন্ধন টোকেনটি বাতিল করে দেয়। ভবিষ্যত প্রচেষ্টা একটি ডিভাইসে ফলাফলে একটি বার্তা পাঠাতে NotRegistered ত্রুটি।

থ্রটলিং এবং স্কেলিং

আমাদের লক্ষ্য হল FCM এর মাধ্যমে প্রেরিত প্রতিটি বার্তা সর্বদা বিলি করা। যাইহোক, কখনও কখনও প্রতিটি বার্তা প্রদানের ফলে সামগ্রিক ব্যবহারকারীর অভিজ্ঞতা খারাপ হয়। অন্যান্য ক্ষেত্রে, FCM সকল প্রেরকের জন্য একটি মাপযোগ্য পরিষেবা প্রদান করে তা নিশ্চিত করতে আমাদের সীমানা প্রদান করতে হবে।

সংকোচনযোগ্য বার্তা থ্রটলিং

উপরে বর্ণিত হিসাবে, সংকোচনযোগ্য বার্তাগুলি হল বিষয়বস্তু-মুক্ত বিজ্ঞপ্তিগুলি একে অপরের উপরে ভেঙে পড়ার জন্য ডিজাইন করা হয়েছে৷ কোনো ডেভেলপার কোনো অ্যাপে একই বার্তা বারবার পুনরাবৃত্তি করলে, ব্যবহারকারীর ব্যাটারির ওপর প্রভাব কমাতে আমরা বার্তাগুলিকে বিলম্বিত (থ্রটল) করি।

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

যদি আপনার ব্যবহারের ক্ষেত্রে উচ্চ বিস্ফোরণ প্রেরণের প্যাটার্নের প্রয়োজন হয়, তাহলে অ-সংকোচনযোগ্য বার্তাগুলি সঠিক পছন্দ হতে পারে। এই ধরনের বার্তাগুলির জন্য, ব্যাটারির খরচ কমানোর জন্য এই ধরনের বার্তাগুলিতে বিষয়বস্তু অন্তর্ভুক্ত করা নিশ্চিত করুন৷

আমরা প্রতি 3 মিনিটে 1টি বার্তা রিফিল সহ প্রতি ডিভাইস প্রতি অ্যাপ প্রতি 20টি বার্তার বিস্ফোরণে সংকোচনযোগ্য বার্তাগুলিকে সীমাবদ্ধ করি।

XMPP সার্ভার থ্রোটলিং

আপনি যে হার FCM XMPP সার্ভারের সাথে সংযোগ করতে পারেন তা আমরা প্রতি মিনিটে 400 সংযোগ প্রতি প্রকল্পে সীমাবদ্ধ করি। এটি বার্তা বিতরণের জন্য একটি সমস্যা হওয়া উচিত নয়, তবে এটি আমাদের সিস্টেমের স্থিতিশীলতা নিশ্চিত করার জন্য গুরুত্বপূর্ণ৷

প্রতিটি প্রকল্পের জন্য, FCM সমান্তরালভাবে 2500 সংযোগের অনুমতি দেয়।

একটি একক ডিভাইসে সর্বাধিক বার্তা হার

আপনি একটি ডিভাইসে 240টি বার্তা/মিনিট এবং 5,000টি বার্তা/ঘন্টা পাঠাতে পারেন৷ এই উচ্চ থ্রেশহোল্ডটি স্বল্পমেয়াদী ট্র্যাফিকের বিস্ফোরণের অনুমতি দেওয়ার জন্য বোঝানো হয়েছে, যেমন ব্যবহারকারীরা যখন চ্যাটে দ্রুত যোগাযোগ করে। এই সীমাটি একটি ডিভাইসে অসাবধানতাবশত ব্যাটারি নিষ্কাশন থেকে যুক্তি প্রেরণে ত্রুটি প্রতিরোধ করে৷

আপস্ট্রিম বার্তা সীমা

আমরা সীমিত মূল প্রজেক্টের বার্তা প্রকল্পের মূল প্রজেক্টের গন্তব্য সার্ভার ওভারলোডিং এড়াতে প্রতি 1,500,000 / মিনিট এ।

অ্যাপের খারাপ আচরণ থেকে ব্যাটারি ড্রেন থেকে রক্ষা করার জন্য আমরা প্রতি ডিভাইসে আপস্ট্রিম বার্তা 1,000/মিনিট সীমাবদ্ধ করি।

বিষয় বার্তা সীমা

বিষয় সাবস্ক্রিপশন যোগ/মুছে ফেলার হার প্রকল্প প্রতি 3,000 QPS-এ সীমাবদ্ধ।

বার্তা পাঠানোর হার জন্য, দেখুন Fanout অপ্টিমাইজেশান থ্রোটলিং

ফ্যানআউট থ্রটলিং

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

বার্তা ফ্যানআউট তাত্ক্ষণিক নয় এবং তাই মাঝে মাঝে আপনার একাধিক ফ্যানআউট একই সাথে চলছে। আমরা প্রতি প্রজেক্টে সমসাময়িক বার্তা ফ্যানআউটের সংখ্যা 1,000-এ সীমাবদ্ধ করি। এর পরে, আমরা অতিরিক্ত ফ্যানআউট অনুরোধগুলি প্রত্যাখ্যান করতে পারি বা ইতিমধ্যেই কিছু প্রগতিশীল ফ্যানআউট সম্পূর্ণ না হওয়া পর্যন্ত অনুরোধগুলির ফ্যানআউট পিছিয়ে দিতে পারি৷

প্রকৃত অর্জনযোগ্য ফ্যানআউট হার একই সময়ে ফ্যানআউটের অনুরোধকারী প্রকল্পের সংখ্যা দ্বারা প্রভাবিত হয়। একটি পৃথক প্রকল্পের জন্য 10,000 QPS এর একটি ফ্যানআউট রেট অস্বাভাবিক নয়, তবে সেই সংখ্যাটি কোনও গ্যারান্টি নয় এবং এটি সিস্টেমে মোট লোডের ফলাফল। এটি লক্ষ্য করা গুরুত্বপূর্ণ যে উপলব্ধ ফ্যানআউট ক্ষমতা প্রকল্পগুলির মধ্যে বিভক্ত এবং ফ্যানআউট অনুরোধগুলির মধ্যে নয়৷ সুতরাং, যদি আপনার প্রকল্পের দুটি ফ্যানআউট প্রগতিতে থাকে, তাহলে প্রতিটি ফ্যানআউট উপলব্ধ ফ্যানআউট হারের অর্ধেক দেখতে পাবে। আপনার ফ্যানআউট গতি সর্বাধিক করার প্রস্তাবিত উপায় হল একটি সময়ে শুধুমাত্র একটি সক্রিয় ফ্যানআউট প্রগতিশীল।

FCM পোর্ট এবং আপনার ফায়ারওয়াল

যদি আপনার সংস্থার কাছে ইন্টারনেটে বা থেকে ট্রাফিক সীমাবদ্ধ করার জন্য একটি ফায়ারওয়াল থাকে, তাহলে আপনার নেটওয়ার্কের ডিভাইসগুলি যাতে বার্তাগুলি পেতে পারে তার জন্য আপনাকে মোবাইল ডিভাইসগুলিকে FCM-এর সাথে সংযোগ করার অনুমতি দেওয়ার জন্য এটি কনফিগার করতে হবে৷ এফসিএম সাধারণত পোর্ট 5228 ব্যবহার করে, তবে এটি কখনও কখনও 443, 5229 এবং 5230 ব্যবহার করে।

আপনার নেটওয়ার্কে সংযোগকারী ডিভাইসগুলির জন্য, FCM নির্দিষ্ট IP প্রদান করে না কারণ আমাদের IP পরিসর খুব ঘন ঘন পরিবর্তিত হয় এবং আপনার ফায়ারওয়াল নিয়মগুলি পুরানো হয়ে যেতে পারে, যা আপনার ব্যবহারকারীদের অভিজ্ঞতাকে প্রভাবিত করে৷ আদর্শভাবে, 5228-5230 এবং 443 আইপি বিধিনিষেধ ছাড়াই অনুমোদিত পোর্ট। যাইহোক, যদি আপনি একটি IP সীমাবদ্ধতা থাকতে হবে, আপনি তালিকাভুক্ত আইপি ঠিকানা সমস্ত allowlist উচিত goog.json । এই বৃহৎ তালিকাটি নিয়মিত আপডেট করা হয় এবং আপনাকে মাসিক ভিত্তিতে আপনার নিয়ম আপডেট করার পরামর্শ দেওয়া হয়। ফায়ারওয়াল আইপি বিধিনিষেধ দ্বারা সৃষ্ট সমস্যাগুলি প্রায়ই মাঝে মাঝে এবং নির্ণয় করা কঠিন।

আমরা ডোমেন নামের একটি সেট অফার করি যা IP ঠিকানার পরিবর্তে অনুমোদিত তালিকাভুক্ত হতে পারে। সেই হোস্টনামগুলি নীচে তালিকাভুক্ত করা হয়েছে৷ আমরা যদি অতিরিক্ত হোস্টনাম ব্যবহার করা শুরু করি, আমরা এখানে তালিকা আপডেট করব। আপনার ফায়ারওয়াল নিয়মের জন্য ডোমেন নাম ব্যবহার করা আপনার ফায়ারওয়াল ডিভাইসে কার্যকরী হতে পারে বা নাও হতে পারে।

খোলার জন্য পোর্ট:

  • 5228
  • 5229
  • 5230
  • 443

খোলার জন্য হোস্টনাম:

  • mtalk.google.com
  • mtalk4.google.com
  • mtalk-staging.google.com
  • mtalk-dev.google.com
  • alt1-mtalk.google.com
  • alt2-mtalk.google.com
  • alt3-mtalk.google.com
  • alt4-mtalk.google.com
  • alt5-mtalk.google.com
  • alt6-mtalk.google.com
  • alt7-mtalk.google.com
  • alt8-mtalk.google.com
  • android.clients.google.com
  • device-provisioning.googleapis.com

নেটওয়ার্ক ঠিকানা অনুবাদ এবং/অথবা স্টেটফুল প্যাকেট পরিদর্শন ফায়ারওয়াল:

যদি আপনার নেটওয়ার্ক নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশন (NAT) বা স্টেটফুল প্যাকেট ইন্সপেকশন (SPI) প্রয়োগ করে, তাহলে 5228-5230 পোর্টে আমাদের সংযোগের জন্য 30 মিনিট বা তার বেশি সময়সীমা কার্যকর করুন। এটি আপনার ব্যবহারকারীদের মোবাইল ডিভাইসের ব্যাটারি খরচ কমানোর সাথে সাথে আমাদের নির্ভরযোগ্য সংযোগ প্রদান করতে সক্ষম করে।

শংসাপত্র

আপনি কোন FCM বৈশিষ্ট্যগুলি প্রয়োগ করেন তার উপর নির্ভর করে, আপনার Firebase প্রকল্প থেকে নিম্নলিখিত শংসাপত্রগুলির প্রয়োজন হতে পারে:

প্রকল্প আইডি আপনার Firebase প্রোজেক্টের জন্য একটি অনন্য শনাক্তকারী, FCM v1 HTTP এন্ডপয়েন্টের অনুরোধে ব্যবহৃত হয়। এই মান পাওয়া যায় Firebase কনসোল সেটিংসে ফলকে।
রেজিস্ট্রেশন টোকেন

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

প্রেরকের আইডি একটি অনন্য সংখ্যাগত মান নির্মিত আপনি আপনার Firebase প্রকল্প, পাওয়া তৈরি ক্লাউড মেসেজিং Firebase কনসোল সেটিংসে পেইনের ট্যাব। ক্লায়েন্ট অ্যাপে বার্তা পাঠাতে পারে এমন প্রতিটি প্রেরককে সনাক্ত করতে প্রেরকের আইডি ব্যবহার করা হয়।
অ্যাক্সেস টোকেন একটি স্বল্পস্থায়ী OAuth 2.0 টোকেন যা HTTP v1 API-তে অনুরোধ অনুমোদন করে। এই টোকেনটি আপনার Firebase প্রকল্পের অন্তর্গত একটি পরিষেবা অ্যাকাউন্টের সাথে যুক্ত৷ টোকেন তৈরি এবং ঘোরান অ্যাক্সেস করতে, ধাপ এ উল্লিখিত নির্দেশাবলী অনুসরণ করার অনুমোদন পাঠান অনুরোধ
সার্ভার কী (লেগেসি প্রোটোকলের জন্য)

ফায়ারবেস ক্লাউড মেসেজিং লিগ্যাসি প্রোটোকলের মাধ্যমে বার্তা পাঠানো সহ Google পরিষেবাগুলিতে অ্যাক্সেসের জন্য আপনার অ্যাপ সার্ভারকে অনুমোদন করে এমন একটি সার্ভার কী৷ আপনি যখন আপনার ফায়ারবেস প্রকল্প তৈরি করেন তখন আপনি সার্ভার কী পান। আপনি এটি দেখতে পারেন ক্লাউড মেসেজিং Firebase কনসোল সেটিংসে পেইনের ট্যাব।

গুরুত্বপূর্ণ: আপনার ক্লায়েন্ট কোডে সার্ভার কী জন্য যে কোন জায়গায় অন্তর্ভুক্ত আছে। এছাড়াও, আপনার অ্যাপ সার্ভার অনুমোদন করার জন্য শুধুমাত্র সার্ভার কী ব্যবহার করা নিশ্চিত করুন। Android, Apple প্ল্যাটফর্ম, এবং ব্রাউজার কী FCM দ্বারা প্রত্যাখ্যান করা হয়েছে।