কিভাবে ধাক্কা কাজ করে

API এ প্রবেশ করার আগে, আসুন একটি উচ্চ স্তর থেকে ধাক্কা দেখি, শেষ করা শুরু করি। তারপরে আমরা যখন পরবর্তীতে পৃথক বিষয় বা API-এর মাধ্যমে ধাপে ধাপে যাই, আপনি কীভাবে এবং কেন এটি গুরুত্বপূর্ণ তা সম্পর্কে ধারণা পাবেন।

পুশ বাস্তবায়নের তিনটি মূল ধাপ হল:

  1. ব্যবহারকারীকে পুশ করার জন্য সাবস্ক্রাইব করার জন্য ক্লায়েন্ট সাইড লজিক যোগ করা (যেমন আপনার ওয়েব অ্যাপে জাভাস্ক্রিপ্ট এবং UI যা বার্তাগুলি পুশ করার জন্য ব্যবহারকারীকে নিবন্ধন করে)।
  2. আপনার ব্যাক-এন্ড/অ্যাপ্লিকেশন থেকে API কল যা ব্যবহারকারীর ডিভাইসে একটি পুশ বার্তা ট্রিগার করে।
  3. পরিষেবা কর্মী জাভাস্ক্রিপ্ট ফাইল যা ডিভাইসে পুশ আসার সময় একটি "পুশ ইভেন্ট" পাবে। এই জাভাস্ক্রিপ্টে আপনি একটি বিজ্ঞপ্তি দেখাতে সক্ষম হবেন।

আসুন একটু বিস্তারিতভাবে এই প্রতিটি ধাপে কী অন্তর্ভুক্ত রয়েছে তা দেখুন।

ধাপ 1: ক্লায়েন্ট সাইড

প্রথম ধাপ হল মেসেজিং পুশ করার জন্য একজন ব্যবহারকারীকে "সাবস্ক্রাইব" করা।

একজন ব্যবহারকারী সাবস্ক্রাইব করার জন্য দুটি জিনিস প্রয়োজন। প্রথমত, ব্যবহারকারীর কাছ থেকে তাদের পুশ মেসেজ পাঠানোর অনুমতি নেওয়া। দ্বিতীয়ত, ব্রাউজার থেকে PushSubscription পাওয়া।

একটি PushSubscription সেই ব্যবহারকারীকে একটি পুশ বার্তা পাঠানোর জন্য আমাদের প্রয়োজনীয় সমস্ত তথ্য রয়েছে৷ আপনি এটিকে সেই ব্যবহারকারীর ডিভাইসের জন্য একটি আইডি হিসাবে "প্রকার" ভাবতে পারেন৷

এই সব করা হয় জাভাস্ক্রিপ্টে পুশ এপিআই দিয়ে।

ব্রাউজার সমর্থন

  • ক্রোম: 42।
  • প্রান্ত: 17।
  • ফায়ারফক্স: 44.
  • সাফারি: 16।

উৎস

একজন ব্যবহারকারীকে সাবস্ক্রাইব করার আগে আপনাকে "অ্যাপ্লিকেশন সার্ভার কী" এর একটি সেট তৈরি করতে হবে, যা আমরা পরে কভার করব।

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

একবার আপনি ব্যবহারকারীর সদস্যতা নিলে এবং একটি PushSubscription পেয়ে গেলে, আপনাকে আপনার ব্যাকএন্ড/সার্ভারে PushSubscription বিশদ পাঠাতে হবে। আপনার সার্ভারে, আপনি একটি ডাটাবেসে এই সদস্যতা সংরক্ষণ করবেন এবং সেই ব্যবহারকারীকে একটি পুশ বার্তা পাঠাতে এটি ব্যবহার করবেন।

নিশ্চিত করুন যে আপনি আপনার ব্যাকএন্ডে PushSubscription পাঠিয়েছেন।

ধাপ 2: একটি পুশ বার্তা পাঠান

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

কিছু প্রশ্ন আপনি নিজেকে জিজ্ঞাসা করতে পারেন:

  • কে এবং কি ধাক্কা সেবা?
  • এপিআই দেখতে কেমন? এটা কি JSON, XML, অন্য কিছু?
  • 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' এবং প্রতিটি এন্ডপয়েন্ট একজন ব্যবহারকারীর জন্য অনন্য, 'কিছু-ধরনের-অনন্য-আইডি-1234' দ্বারা নির্দেশিত। আপনি পুশ দিয়ে কাজ শুরু করার সাথে সাথে আপনি এই প্যাটার্নটি লক্ষ্য করবেন।

সাবস্ক্রিপশনের কীগুলি পরে কভার করা হবে৷

এপিআই দেখতে কেমন?

আমি উল্লেখ করেছি যে প্রতিটি ওয়েব পুশ পরিষেবা একই API কল আশা করে। সেই API হল ওয়েব পুশ প্রোটোকল । এটি একটি আইইটিএফ স্ট্যান্ডার্ড যা সংজ্ঞায়িত করে যে আপনি কীভাবে একটি পুশ পরিষেবাতে একটি API কল করবেন।

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

API কি করতে পারে?

API একটি ব্যবহারকারীকে একটি বার্তা পাঠানোর একটি উপায় প্রদান করে, ডেটা সহ / ছাড়াই, এবং কিভাবে বার্তা পাঠাতে হয় তার নির্দেশাবলী প্রদান করে৷

আপনি একটি ধাক্কা বার্তা পাঠান তথ্য এনক্রিপ্ট করা আবশ্যক. এর কারণ হ'ল এটি পুশ পরিষেবাগুলিকে বাধা দেয়, যারা যে কেউ হতে পারে, পুশ বার্তার সাথে প্রেরিত ডেটা দেখতে সক্ষম হওয়া থেকে। এটি গুরুত্বপূর্ণ যে ব্রাউজারই সিদ্ধান্ত নেয় কোন পুশ পরিষেবা ব্যবহার করবে, যা নিরাপদ বা নিরাপদ নয় এমন একটি পুশ পরিষেবা ব্যবহার করে ব্রাউজারগুলির জন্য দরজা খুলতে পারে৷

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

নির্দেশাবলী যেমন বিশদ বিবরণ অন্তর্ভুক্ত:

  • একটি ধাক্কা বার্তা জন্য সময়-টু-লাইভ. এটি সংজ্ঞায়িত করে যে একটি বার্তাটি সরানোর আগে এবং বিতরণ না করার আগে কতক্ষণ সারিবদ্ধ থাকতে হবে।

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

  • একটি পুশ বার্তাকে একটি "বিষয়" নাম দিন যা এই নতুন বার্তার সাথে যেকোনো মুলতুবি বার্তা প্রতিস্থাপন করবে।

যখন আপনার সার্ভার একটি পুশ বার্তা পাঠাতে চায়, এটি একটি পুশ পরিষেবাতে একটি ওয়েব পুশ প্রোটোকল অনুরোধ করে।

ধাপ 3: ব্যবহারকারীর ডিভাইসে ইভেন্ট পুশ করুন

একবার আমরা একটি পুশ বার্তা পাঠালে, পুশ পরিষেবা আপনার বার্তাটি তার সার্ভারে রাখবে যতক্ষণ না নিম্নলিখিত একটি ঘটনা ঘটে:

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

যখন পুশ পরিষেবা একটি বার্তা প্রদান করে, ব্রাউজারটি বার্তাটি গ্রহণ করবে, কোনও ডেটা ডিক্রিপ্ট করবে এবং আপনার পরিষেবা কর্মীতে একটি push ইভেন্ট প্রেরণ করবে।

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

এটি পরিষেবা কর্মীর 'পুশ' ইভেন্টের ভিতরে যে আপনি যেকোন ব্যাকগ্রাউন্ড কাজগুলি সম্পাদন করতে পারেন। আপনি বিশ্লেষণ কল করতে পারেন, ক্যাশে পৃষ্ঠাগুলি অফলাইনে এবং বিজ্ঞপ্তিগুলি দেখাতে পারেন৷

যখন কোনও পুশ পরিষেবা থেকে কোনও ব্যবহারকারীর ডিভাইসে একটি পুশ বার্তা পাঠানো হয়, তখন আপনার পরিষেবা কর্মী একটি পুশ ইভেন্ট পায়

এটি পুশ মেসেজিংয়ের পুরো প্রবাহ।

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

কোড ল্যাব