পুশ বিজ্ঞপ্তি FAQ

ব্রাউজার বন্ধ হয়ে গেলে কাজ করে না কেন?

এই প্রশ্নটি বেশ খানিকটা উত্থাপিত হয়, মূলত কারণ এমন কয়েকটি পরিস্থিতি রয়েছে যা যুক্তি এবং বোঝা কঠিন করে তোলে।

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

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

ডেস্কটপ ওএস-এ, এটি আরও সংক্ষিপ্ত এবং Mac OS X-এ ব্যাখ্যা করা সবচেয়ে সহজ কারণ বিভিন্ন পরিস্থিতি ব্যাখ্যা করতে সাহায্য করার জন্য একটি ভিজ্যুয়াল সূচক রয়েছে।

Mac OS X-এ, আপনি ডকের অ্যাপ আইকনের নীচে একটি চিহ্ন দিয়ে একটি প্রোগ্রাম চলছে কিনা তা বলতে পারেন।

আপনি যদি নিম্নলিখিত ডকে দুটি ক্রোম আইকন তুলনা করেন, বাম দিকের একটি চলছে, যেমনটি আইকনের নীচে চিহ্ন দ্বারা চিত্রিত হয়েছে, যেখানে ডানদিকের ক্রোম চলছে না , তাই নীচে চিহ্নিতকরণের অভাব।

OS X এর উদাহরণ

ডেস্কটপে পুশ মেসেজ পাওয়ার প্রেক্ষাপটে, ব্রাউজার চালু হলে আপনি বার্তা পাবেন, অর্থাৎ আইকনের নিচে মার্কিং থাকবে।

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

ব্রাউজারটি সম্পূর্ণরূপে বন্ধ হয়ে গেলেই কেবলমাত্র একটি পুশ গ্রহণ করা হবে না, অর্থাৎ মোটেও চলছে না (মার্কিং নেই)। একই Windows এর জন্য প্রযোজ্য, যদিও Chrome ব্যাকগ্রাউন্ডে চলছে কিনা তা নির্ধারণ করা একটু জটিল।

আমি কীভাবে আমার হোম স্ক্রীন ওয়েব অ্যাপকে একটি পুশ থেকে ফুলস্ক্রিন খুলতে পারি?

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

পূর্ণস্ক্রীনে হোম স্ক্রীন আইকন

এই অভিজ্ঞতা সামঞ্জস্যপূর্ণ রাখতে, বিকাশকারীরা চান যে তাদের ক্লিক করা বিজ্ঞপ্তিগুলিও তাদের ওয়েব অ্যাপটি ফুলস্ক্রিনে খুলুক।

ক্রোম এটিকে "বাছাই করে" প্রয়োগ করেছে, যদিও আপনি এটিকে অবিশ্বস্ত এবং যুক্তি করা কঠিন বলে মনে করতে পারেন৷ প্রাসঙ্গিক বাস্তবায়ন বিবরণ হল:

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

এই সমস্যা আরও কাজ করা হবে.

কেন এটি ওয়েব সকেটের চেয়ে ভাল?

ব্রাউজার উইন্ডোটি বন্ধ হয়ে গেলে একজন পরিষেবা কর্মীকে জীবিত করা যেতে পারে। একটি ওয়েব সকেট কেবল ততক্ষণ বেঁচে থাকবে যতক্ষণ ব্রাউজার এবং ওয়েব পৃষ্ঠা খোলা থাকবে।

জিসিএম, এফসিএম, ওয়েব পুশ এবং ক্রোমের সাথে চুক্তি কী?

এই প্রশ্নটির বেশ কয়েকটি দিক রয়েছে এবং ব্যাখ্যা করার সবচেয়ে সহজ উপায় হল ওয়েব পুশ এবং ক্রোমের ইতিহাসের মধ্য দিয়ে ধাপে ধাপে যাওয়া। (চিন্তা করবেন না, এটি সংক্ষিপ্ত।)

ডিসেম্বর 2014

যখন ক্রোম প্রথম ওয়েব পুশ প্রয়োগ করেছিল, তখন সার্ভার থেকে ব্রাউজারে পুশ বার্তা পাঠানোর জন্য Chrome Google ক্লাউড মেসেজিং (GCM) ব্যবহার করেছিল।

এটি ওয়েব পুশ ছিল না । Chrome এবং GCM-এর এই প্রথম দিকের সেট-আপ "বাস্তব" ওয়েব পুশ না হওয়ার কয়েকটি কারণ রয়েছে৷

  • GCM-এর জন্য ডেভেলপারদের Google Developers Console-এ একটি অ্যাকাউন্ট সেট আপ করতে হবে।
  • সঠিকভাবে মেসেজিং সেট আপ করতে সক্ষম হওয়ার জন্য একটি ওয়েব অ্যাপ দ্বারা শেয়ার করার জন্য Chrome এবং GCM একটি বিশেষ প্রেরক আইডি প্রয়োজন৷
  • GCM এর সার্ভারগুলি একটি কাস্টম API অনুরোধ গ্রহণ করেছে যা একটি ওয়েব স্ট্যান্ডার্ড ছিল না৷

জুলাই 2016

জুলাই মাসে ওয়েব পুশ-এ একটি নতুন বৈশিষ্ট্য অবতরণ করেছে - অ্যাপ্লিকেশন সার্ভার কী (বা VAPID, যেমনটি বিশেষ পরিচিত)। যখন Chrome এই নতুন API-এর জন্য সমর্থন যোগ করেছে, তখন এটি একটি বার্তা পরিষেবা হিসাবে GCM-এর পরিবর্তে Firebase ক্লাউড মেসেজিং (FCM নামেও পরিচিত) ব্যবহার করেছে। এটি কয়েকটি কারণে গুরুত্বপূর্ণ:

  • Chrome এবং Application Sever Key-এর Google বা Firebase-এর সাথে সেট আপ করার জন্য কোনো ধরনের প্রজেক্টের প্রয়োজন নেই । এটা শুধু কাজ করবে.
  • এফসিএম ওয়েব পুশ প্রোটোকল সমর্থন করে, যেটি API যা সমস্ত ওয়েব পুশ পরিষেবা সমর্থন করবে। এর মানে হল যে কোনও ব্রাউজার যে পুশ পরিষেবা ব্যবহার করে তা নির্বিশেষে, আপনি একই ধরনের অনুরোধ করবেন এবং এটি বার্তা পাঠাবে।

কেন এটা আজ বিভ্রান্তিকর?

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

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

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

Firebase এর একটি JavaScript SDK আছে। কি এবং কেন?

আপনারা যারা Firebase ওয়েব SDK খুঁজে পেয়েছেন এবং লক্ষ্য করেছেন যে এতে জাভাস্ক্রিপ্টের জন্য একটি মেসেজিং API রয়েছে, আপনি হয়তো ভাবছেন যে এটি কীভাবে ওয়েব পুশ থেকে আলাদা।

মেসেজিং SDK (ফায়ারবেস ক্লাউড মেসেজিং JS SDK নামে পরিচিত) ওয়েব পুশ বাস্তবায়ন সহজ করার জন্য পর্দার পিছনে কয়েকটি কৌশল করে।

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

এটি পর্দার পিছনে ওয়েব পুশ ব্যবহার করে, তবে এর লক্ষ্য এটিকে বিমূর্ত করা।

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

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

কোড ল্যাব