API-তে যাওয়ার আগে, শুরু থেকে শেষ পর্যন্ত পুশ করার বিষয়টি হাই লেভেল থেকে দেখে নেওয়া যাক। তারপর, আমরা পরবর্তীকালে আলাদা আলাদা বিষয় বা API নিয়ে আলোচনা করার সময়, আপনি বুঝতে পারবেন যে এটি কীভাবে এবং কেন গুরুত্বপূর্ণ।
পুশ প্রয়োগ করার তিনটি মূল ধাপ হল:
- পুশ মেসেজ সাবস্ক্রাইব করার জন্য ক্লায়েন্ট সাইড লজিক যোগ করা (যেমন, আপনার ওয়েব অ্যাপে জাভাস্ক্রিপ্ট ও UI যা পুশ মেসেজের জন্য ব্যবহারকারীকে রেজিস্টার করে)।
- আপনার ব্যাক-এন্ড / অ্যাপ্লিকেশন থেকে API কল যা ব্যবহারকারীর ডিভাইসে একটি পুশ মেসেজ ট্রিগার করে।
- সার্ভিস ওয়ার্কার জাভাস্ক্রিপ্ট ফাইল যা ডিভাইসে পুশ এলে "পুশ ইভেন্ট" রিসিভ করবে। এই জাভাস্ক্রিপ্টেই আপনি বিজ্ঞপ্তি দেখাতে পারবেন।
আসুন, এই প্রতিটি ধাপের সাথে কী কী জড়িত তা একটু বিস্তারিতভাবে দেখে নেওয়া যাক।
ধাপ ১: ক্লায়েন্ট সাইড
প্রথম ধাপ হল, পুশ মেসেজিংয়ের জন্য কোনও ব্যবহারকারীকে "সাবস্ক্রাইব" করা।
কোনও ব্যবহারকারীকে সাবস্ক্রাইব করতে দুটি জিনিস প্রয়োজন। প্রথমত, ব্যবহারকারীকে পুশ মেসেজ পাঠানোর জন্য তার থেকে অনুমতি নেওয়া। দ্বিতীয়ত, ব্রাউজার থেকে PushSubscription পাওয়া।
PushSubscription-এ সেই ব্যবহারকারীকে পুশ মেসেজ পাঠানোর জন্য প্রয়োজনীয় সব তথ্য থাকে।
আপনি এটিকে ব্যবহারকারীর ডিভাইসের আইডি হিসেবে "এক ধরনের" ভাবতে পারেন।
Push API-এর মাধ্যমে জাভাস্ক্রিপ্টে এই সব কিছু করা হয়।
কোনও ব্যবহারকারীকে সাবস্ক্রাইব করার আগে আপনাকে "অ্যাপ্লিকেশন সার্ভার কী" তৈরি করতে হবে, যা আমরা পরে আলোচনা করব।
অ্যাপ্লিকেশন সার্ভার কী, যা VAPID কী নামেও পরিচিত, আপনার সার্ভারের জন্য অনন্য। এগুলি কোনও পুশ পরিষেবাকে জানতে দেয় যে কোন অ্যাপ্লিকেশন সার্ভার কোনও ব্যবহারকারীকে সাবস্ক্রাইব করেছে এবং নিশ্চিত করে যে এটি একই সার্ভার যা সেই ব্যবহারকারীকে পুশ মেসেজ ট্রিগার করছে।
ব্যবহারকারী সাবস্ক্রাইব করার পরে এবং আপনি PushSubscription পাওয়ার পরে, আপনাকে
PushSubscription-এর বিবরণ আপনার ব্যাকএন্ড / সার্ভারে পাঠাতে হবে। আপনার সার্ভারে, আপনি এই সাবস্ক্রিপশনটি একটি ডেটাবেসে সেভ করবেন এবং সেই ব্যবহারকারীকে একটি পুশ মেসেজ পাঠাতে এটি ব্যবহার করবেন।
ধাপ ২: পুশ মেসেজ পাঠান
আপনার ব্যবহারকারীদের পুশ মেসেজ পাঠাতে চাইলে, আপনাকে পুশ পরিষেবায় API কল করতে হবে। এই API কলে কোন ডেটা পাঠাতে হবে, কাকে মেসেজ পাঠাতে হবে এবং মেসেজ কীভাবে পাঠাতে হবে সেই সংক্রান্ত যেকোনও মাপকাঠি অন্তর্ভুক্ত থাকবে। সাধারণত এই API কল আপনার সার্ভার থেকে করা হয়।
আপনি নিজেকে কিছু প্রশ্ন করতে পারেন:
- পুশ পরিষেবা কী এবং কে এটি প্রদান করে?
- API দেখতে কেমন? Is it JSON, XML, something else?
- API কী করতে পারে?
পুশ পরিষেবা কী এবং কে এটি প্রদান করে?
পুশ পরিষেবা নেটওয়ার্ক অনুরোধ গ্রহণ করে, এটি যাচাই করে এবং উপযুক্ত ব্রাউজারে পুশ মেসেজ ডেলিভার করে। ব্রাউজার অফলাইন থাকলে, ব্রাউজার অনলাইন না হওয়া পর্যন্ত মেসেজটি সারিতে থাকে।
প্রতিটি ব্রাউজার তাদের পছন্দমতো যেকোনও পুশ পরিষেবা ব্যবহার করতে পারে, এটি এমন একটি বিষয় যার উপর ডেভেলপারদের কোনও নিয়ন্ত্রণ নেই। এটি কোনও সমস্যা নয় কারণ প্রতিটি পুশ পরিষেবা একই API কল প্রত্যাশা করে। এর অর্থ হল, পুশ পরিষেবা কে প্রদান করছে তা নিয়ে আপনাকে চিন্তা করতে হবে না। আপনাকে শুধু নিশ্চিত করতে হবে যে আপনার API কল সঠিক।
পুশ মেসেজ ট্রিগার করার জন্য উপযুক্ত URL (যেমন, পুশ পরিষেবার URL) পেতে, আপনাকে
শুধু PushSubscription-এ endpoint ভ্যালু দেখতে হবে।
PushSubscription থেকে আপনি যেসব ভ্যালু পাবেন তার উদাহরণ নিচে দেওয়া হল:
{
"endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
"keys": {
"p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
"auth": "tBHItJI5svbpez7KI4CCXg=="
}
}
এক্ষেত্রে এন্ডপয়েন্ট হল
https://random-push-service.com/some-kind-of-unique-id-1234/v2/। পুশ পরিষেবাটি হবে
'random-push-service.com' এবং প্রতিটি এন্ডপয়েন্ট একজন ব্যবহারকারীর জন্য অনন্য, যা
'some-kind-of-unique-id-1234' দিয়ে দেখানো হয়েছে। আপনি পুশ নিয়ে কাজ শুরু করলে এই প্যাটার্ন লক্ষ্য করবেন।
সাবস্ক্রিপশনের কী পরে কভার করা হবে।
API দেখতে কেমন?
আমি উল্লেখ করেছি যে প্রতিটি ওয়েব পুশ পরিষেবা একই API কল প্রত্যাশা করে। সেই API হল ওয়েব পুশ প্রোটোকল। এটি একটি IETF স্ট্যান্ডার্ড যা আপনি কীভাবে পুশ পরিষেবায় API কল করবেন তা নির্ধারণ করে।
API কলের জন্য নির্দিষ্ট হেডার সেট করতে হবে এবং ডেটা বাইটের স্ট্রিম হতে হবে। আমরা এমন লাইব্রেরি দেখব যা আমাদের জন্য এই API কল করতে পারে এবং আমরা কীভাবে এটি করতে পারি তাও দেখব।
API কী করতে পারে?
API, ডেটা সহ / ছাড়া কোনও ব্যবহারকারীকে মেসেজ পাঠানোর উপায় প্রদান করে এবং মেসেজ কীভাবে পাঠাতে হবে তার নির্দেশাবলী প্রদান করে।
পুশ মেসেজের মাধ্যমে আপনি যে ডেটা পাঠান তা এনক্রিপ্ট করা থাকতে হবে। এর কারণ হল, এটি পুশ পরিষেবাকে, যে কেউ হতে পারে, পুশ মেসেজের সাথে পাঠানো ডেটা দেখতে বাধা দেয়। এটি গুরুত্বপূর্ণ কারণ ব্রাউজারই সিদ্ধান্ত নেয় যে কোন পুশ পরিষেবা ব্যবহার করা হবে, যার ফলে ব্রাউজার এমন পুশ পরিষেবা ব্যবহার করতে পারে যা নিরাপদ বা সুরক্ষিত নয়।
আপনি পুশ মেসেজ ট্রিগার করলে, পুশ পরিষেবা এপিআই কল পাবে এবং মেসেজটি সারিতে রাখবে। ব্যবহারকারীর ডিভাইস অনলাইন না হওয়া এবং পুশ পরিষেবা মেসেজ ডেলিভার না করা পর্যন্ত এই মেসেজ সারিতে থাকবে। পুশ মেসেজ কীভাবে সারিবদ্ধ করা হবে তা নির্ধারণ করতে আপনি পুশ পরিষেবাকে নির্দেশ দিতে পারেন।
নির্দেশাবলীতে এই ধরনের বিবরণ অন্তর্ভুক্ত থাকে:
পুশ মেসেজের জন্য টাইম-টু-লাইভ। এটি নির্ধারণ করে যে কোনও মেসেজ মুছে ফেলার এবং ডেলিভার না করার আগে কতক্ষণ সারিতে রাখা উচিত।
মেসেজের জরুরি অবস্থা নির্ধারণ করুন। এটি তখন কাজে লাগে যখন পুশ পরিষেবা শুধুমাত্র উচ্চ অগ্রাধিকারের মেসেজ ডেলিভার করে ব্যবহারকারীর ব্যাটারির আয়ু বাঁচায়।
পুশ মেসেজকে "বিষয়" নাম দিন যা এই নতুন মেসেজের মাধ্যমে যেকোনও পেন্ডিং মেসেজকে পরিবর্তন করবে।
ধাপ ৩: ব্যবহারকারীর ডিভাইসে ইভেন্ট পুশ করা
আমরা পুশ মেসেজ পাঠানোর পরে, পুশ পরিষেবা আপনার মেসেজ তার সার্ভারে রেখে দেবে যতক্ষণ না নিম্নলিখিত ইভেন্টগুলির মধ্যে একটি ঘটে:
- ডিভাইস অনলাইন হলে পুশ পরিষেবা মেসেজ ডেলিভার করে।
- মেসেজের মেয়াদ শেষ হয়ে যায়। এটি হলে, পুশ পরিষেবা তার কিউ থেকে মেসেজটি সরিয়ে দেয় এবং এটি কখনও ডেলিভার করা হবে না।
পুশ পরিষেবা মেসেজ ডেলিভার করলে, ব্রাউজার মেসেজটি পাবে, যেকোনও ডেটা ডিক্রিপ্ট করবে এবং আপনার পরিষেবা কর্মীকে একটি push ইভেন্ট পাঠাবে।
সার্ভিস ওয়ার্কার হল একটি "বিশেষ" জাভাস্ক্রিপ্ট ফাইল। আপনার পৃষ্ঠা খোলা না থাকলেও ব্রাউজার এই জাভাস্ক্রিপ্ট এক্সিকিউট করতে পারে। এমনকি ব্রাউজার বন্ধ থাকলেও এটি এই জাভাস্ক্রিপ্ট চালাতে পারে। এছাড়াও, সার্ভিস ওয়ার্কারের কাছে পুশের মতো API থাকে যা ওয়েব পেজে উপলভ্য নয় (অর্থাৎ, সার্ভিস ওয়ার্কার স্ক্রিপ্টের বাইরে উপলভ্য নয় এমন API)।
সার্ভিস ওয়ার্কারের 'পুশ' ইভেন্টের মধ্যে আপনি যেকোনও ব্যাকগ্রাউন্ড টাস্ক করতে পারবেন। আপনি অ্যানালিটিক্স কল করতে, অফলাইনে পৃষ্ঠা ক্যাশে করতে এবং বিজ্ঞপ্তি দেখাতে পারবেন।
পুশ মেসেজিংয়ের সম্পূর্ণ ফ্লো এটিই।
এরপর কোথায় যেতে হবে
- ওয়েব থেকে পাঠানো পুশ বিজ্ঞপ্তি এক নজরে
- পুশ কীভাবে কাজ করে
- ব্যবহারকারীকে সাবস্ক্রাইব করা
- অনুমতি UX
- ওয়েব পুশ লাইব্রেরির মাধ্যমে মেসেজ পাঠানো
- ওয়েব পুশ প্রোটোকল
- পুশ ইভেন্ট ম্যানেজ করা
- বিজ্ঞপ্তি দেখানো
- বিজ্ঞপ্তি সংক্রান্ত আচরণ
- সাধারণ বিজ্ঞপ্তির প্যাটার্ন
- পুশ বিজ্ঞপ্তি সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্ন
- সাধারণ সমস্যা এবং বাগ সম্পর্কে অভিযোগ জানানো