পুশ বিজ্ঞপ্তি ওভারভিউ

পুশ বিজ্ঞপ্তিগুলি কী, কেন আপনি সেগুলি ব্যবহার করতে পারেন এবং সেগুলি কীভাবে কাজ করে তার একটি ওভারভিউ৷

পুশ বিজ্ঞপ্তি কি?

পুশ বার্তাগুলি আপনাকে আপনার ব্যবহারকারীদের নজরে তথ্য আনতে সক্ষম করে এমনকি যখন তারা আপনার ওয়েবসাইট ব্যবহার করছে না। এগুলিকে পুশ বার্তা বলা হয় কারণ আপনি আপনার ব্যবহারকারীদের কাছে তথ্য "পুশ" করতে পারেন এমনকি যখন তারা সক্রিয় না থাকে। এই ধারণাটি আরও বোঝার জন্য পুল প্রযুক্তির সাথে পুশ প্রযুক্তির তুলনা করুন।

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

macOS এবং Android-এ বিজ্ঞপ্তির উদাহরণ।
macOS এবং Android-এ বিজ্ঞপ্তির উদাহরণ।

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

কেন পুশ বিজ্ঞপ্তি ব্যবহার?

  • ব্যবহারকারীদের জন্য, পুশ বিজ্ঞপ্তিগুলি সময়মত , প্রাসঙ্গিক এবং সুনির্দিষ্ট তথ্য পাওয়ার একটি উপায়।
  • আপনার জন্য (একজন ওয়েবসাইটের মালিক), পুশ নোটিফিকেশন হল ব্যবহারকারীর ব্যস্ততা বাড়ানোর একটি উপায়৷

পুশ বিজ্ঞপ্তি কিভাবে কাজ করে?

উচ্চ-স্তরে, পুশ বিজ্ঞপ্তিগুলি বাস্তবায়নের মূল পদক্ষেপগুলি হল:

  1. ব্যবহারকারীর কাছে পুশ নোটিফিকেশন পাঠানোর অনুমতি চাওয়ার জন্য ক্লায়েন্ট লজিক যোগ করা এবং তারপর ডাটাবেসে স্টোরেজের জন্য আপনার সার্ভারে ক্লায়েন্ট আইডেন্টিফায়ার তথ্য পাঠানো।
  2. ক্লায়েন্ট ডিভাইসে বার্তা পুশ করতে সার্ভার লজিক যোগ করা হচ্ছে।
  3. ডিভাইসে পুশ করা বার্তাগুলি পেতে ক্লায়েন্ট লজিক যোগ করা এবং সেগুলিকে বিজ্ঞপ্তি হিসাবে প্রদর্শন করা।

এই পৃষ্ঠার বাকি অংশটি এই পদক্ষেপগুলিকে আরও বিস্তারিতভাবে ব্যাখ্যা করে।

পুশ বিজ্ঞপ্তি পাঠানোর অনুমতি পান

প্রথমত, আপনার ওয়েবসাইটকে পুশ বিজ্ঞপ্তি পাঠানোর জন্য ব্যবহারকারীর অনুমতি নিতে হবে। এটি একটি ব্যবহারকারীর অঙ্গভঙ্গি দ্বারা ট্রিগার করা উচিত, যেমন একটির পাশে একটি হ্যাঁ বোতামে ক্লিক করা Do you want to receive push notifications? প্রম্পট সেই নিশ্চিতকরণের পরে, Notification.requestPermission() কল করুন। ব্যবহারকারীর ডিভাইসে অপারেটিং সিস্টেম বা ব্রাউজার সম্ভবত আনুষ্ঠানিকভাবে নিশ্চিত করার জন্য কোনো ধরনের UI উপস্থাপন করবে যে ব্যবহারকারী বিজ্ঞপ্তিগুলি পুশ করতে বেছে নিতে চান। এই UI প্ল্যাটফর্ম জুড়ে পরিবর্তিত হয়।

নোটিফিকেশন পুশ করতে ক্লায়েন্টকে সাবস্ক্রাইব করুন

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

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

পুশ বার্তা পাঠানোর অনুমতি পান। PushSubscription পান। আপনার সার্ভারে PushSubscription পাঠান।

একটি ধাক্কা বার্তা পাঠান

আপনার সার্ভার আসলে ক্লায়েন্টকে সরাসরি পুশ বার্তা পাঠায় না। একটি ধাক্কা সেবা যে করে. একটি পুশ পরিষেবা হল একটি ওয়েব পরিষেবা যা আপনার ব্যবহারকারীর ব্রাউজার বিক্রেতার দ্বারা নিয়ন্ত্রিত হয়৷ আপনি যখন কোনও ক্লায়েন্টকে একটি পুশ বিজ্ঞপ্তি পাঠাতে চান তখন আপনাকে একটি পুশ পরিষেবাতে একটি ওয়েব পরিষেবা অনুরোধ করতে হবে। আপনি পুশ পরিষেবাতে যে ওয়েব পরিষেবার অনুরোধ পাঠান সেটি ওয়েব পুশ প্রোটোকল অনুরোধ হিসাবে পরিচিত৷ ওয়েব পুশ প্রোটোকল অনুরোধ অন্তর্ভুক্ত করা উচিত:

  • বার্তায় কী ডেটা অন্তর্ভুক্ত করতে হবে।
  • কোন ক্লায়েন্টকে বার্তা পাঠাতে হবে।
  • কিভাবে ধাক্কা পরিষেবা বার্তা প্রদান করা উচিত নির্দেশাবলী. উদাহরণস্বরূপ, আপনি উল্লেখ করতে পারেন যে পুশ পরিষেবাটি 10 ​​মিনিটের পরে বার্তা পাঠানোর প্রচেষ্টা বন্ধ করবে।

সাধারণত আপনি একটি সার্ভারের মাধ্যমে ওয়েব পুশ প্রোটোকল অনুরোধ করেন যা আপনি নিয়ন্ত্রণ করেন। অবশ্যই, আপনার সার্ভারকে কাঁচা ওয়েব পরিষেবার অনুরোধ নিজেই তৈরি করতে হবে না। আপনার জন্য এটি পরিচালনা করতে পারে এমন লাইব্রেরি আছে, যেমন web-push-libs । কিন্তু অন্তর্নিহিত প্রক্রিয়া হল HTTP এর উপর একটি ওয়েব পরিষেবা অনুরোধ।

আপনার সার্ভার পুশ পরিষেবাতে একটি ওয়েব পুশ প্রোটোকল অনুরোধ পাঠায় এবং পুশ পরিষেবা ব্যবহারকারীর ডিভাইসে বার্তা পাঠায়।

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

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

তবে, আপনাকে নিশ্চিত করতে হবে যে আপনি সঠিক পুশ পরিষেবাতে ওয়েব পুশ প্রোটোকল অনুরোধ পাঠাচ্ছেন। সাবস্ক্রিপশন প্রক্রিয়া চলাকালীন ব্রাউজার আপনাকে যে PushSubscription ডেটা ফেরত দিয়েছে তা এই তথ্য প্রদান করে। একটি PushSubscription অবজেক্ট এই মত দেখায়:

{
  "endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
  "expirationTime": null,
  "keys": {
    "p256dh": "BGyyVt9FFV…",
    "auth": "R9sidzkcdf"
  }
}

endpoint ডোমেইন মূলত পুশ সার্ভিস। endpoint পথ হল ক্লায়েন্ট শনাক্তকারী তথ্য যা পুশ পরিষেবাকে ঠিক কোন ক্লায়েন্টে বার্তাটি পুশ করবে তা নির্ধারণ করতে সাহায্য করে।

keys এনক্রিপশনের জন্য ব্যবহৃত হয়, যা পরবর্তীতে ব্যাখ্যা করা হয়েছে।

পুশ বার্তা এনক্রিপ্ট করুন

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

আপনার ওয়েব পুশ প্রোটোকল অনুরোধ সাইন ইন করুন

পুশ পরিষেবা অন্য কাউকে আপনার ব্যবহারকারীদের কাছে বার্তা পাঠাতে বাধা দেওয়ার একটি উপায় প্রদান করে৷ প্রযুক্তিগতভাবে আপনাকে এটি করতে হবে না তবে Chrome এ সবচেয়ে সহজ বাস্তবায়নের জন্য এটি প্রয়োজন। এটা ফায়ারফক্সে ঐচ্ছিক। অন্যান্য ব্রাউজার ভবিষ্যতে এটি প্রয়োজন হতে পারে.

এই ওয়ার্কফ্লোতে একটি ব্যক্তিগত কী এবং সর্বজনীন কী জড়িত যা আপনার অ্যাপ্লিকেশনের জন্য অনন্য। প্রমাণীকরণ প্রক্রিয়া মোটামুটি এই মত কাজ করে:

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

পুশ বার্তার ডেলিভারি কাস্টমাইজ করুন

ওয়েব পুশ প্রোটোকল রিকোয়েস্ট স্পেক প্যারামিটারগুলিকেও সংজ্ঞায়িত করে যা আপনাকে কাস্টমাইজ করতে দেয় কিভাবে পুশ সার্ভিস ক্লায়েন্টকে পুশ মেসেজ পাঠানোর চেষ্টা করে। উদাহরণস্বরূপ, আপনি কাস্টমাইজ করতে পারেন:

  • একটি বার্তার টাইম-টু-লাইভ (TTL), যা সংজ্ঞায়িত করে যে পুশ পরিষেবা কতক্ষণ একটি বার্তা প্রদান করার চেষ্টা করবে।
  • বার্তার জরুরীতা, যা পুশ পরিষেবা শুধুমাত্র উচ্চ-অগ্রাধিকার বার্তা প্রদানের মাধ্যমে ক্লায়েন্টের ব্যাটারি লাইফ সংরক্ষণ করার ক্ষেত্রে কার্যকর।
  • একটি বার্তার বিষয়, যেটি একই বিষয়ের যেকোনো মুলতুবি থাকা বার্তাকে সর্বশেষ বার্তা দিয়ে প্রতিস্থাপন করে।

বিজ্ঞপ্তি হিসাবে পুশ করা বার্তাগুলি গ্রহণ এবং প্রদর্শন করুন

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

  1. ক্লায়েন্ট অনলাইনে আসে এবং পুশ পরিষেবা পুশ বার্তা প্রদান করে।
  2. বার্তার মেয়াদ শেষ।

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

ডিভাইসে বার্তা আসে। ব্রাউজার জেগে ওঠে সেবা কর্মী। পুশ ইভেন্ট পাঠানো হয়.

পরের দিকে কোথায় যেতে হবে

কোড ল্যাব