এক্সটেনশনে রিয়েল-টাইম আপডেট

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

  • ওয়েব পুশ বা পুশ এপিআই হল একটি ওয়েব স্ট্যান্ডার্ড যা আপনাকে যেকোন পুশ প্রদানকারী থেকে বা এমনকি আপনার নিজস্ব ওয়েব সার্ভারের মাধ্যমে একটি Chrome এক্সটেনশনে বার্তা পাঠাতে এবং গ্রহণ করতে দেয়।
  • chrome.gcm হল একটি লিগ্যাসি এক্সটেনশন নির্দিষ্ট API যা আপনাকে Firebase ক্লাউড মেসেজিং ব্যবহার করে বার্তা পাঠাতে এবং গ্রহণ করতে দেয়।
  • WebSockets হল একটি নিম্ন-স্তরের প্রোটোকল যা আপনাকে আপনার Chrome এক্সটেনশন এবং আপনার সার্ভারের মধ্যে একটি দ্বিমুখী সংযোগ খুলতে দেয়।

সাধারণ পরিস্থিতি

এখানে Chrome এক্সটেনশনের কিছু সাধারণ পরিস্থিতি রয়েছে যেখানে রিয়েল-টাইম যোগাযোগ গুরুত্বপূর্ণ:

পরিবর্তন সহ ব্যবহারকারীদের আপ টু ডেট রাখুন।

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

আপনি ব্যবহারকারীদের বাগ বা সমস্যা রিপোর্ট করতে দিচ্ছেন? আপনি সরাসরি আপনার এক্সটেনশনে শেয়ার করার জন্য একটি আপডেট পাওয়ার সাথে সাথে তাদের জানাতে একটি পুশ প্রদানকারীর সাথে সংহত করতে পারেন৷

ব্যবহারকারীদের বিজ্ঞপ্তি পাঠান.

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

ব্যবহারকারীদের শুধুমাত্র একটি উপসেটকে বার্তা পাঠানোর জন্য, পুশ হল সেরা পছন্দ। যদিও ফায়ারবেস ক্লাউড মেসেজিং বিষয়গুলি অফার করে (চ্যানেল হিসাবেও পরিচিত), এটি শুধুমাত্র তাদের HTTP ক্লাউড মেসেজিং API-এ উপলব্ধ। এটি chrome.gcm যে লিগ্যাসি সংস্করণ ব্যবহার করে তার থেকে আলাদা৷ আপনি যদি Chrome-এর লিগ্যাসি সংস্করণ (প্রি-ক্রোম 121) সহ সমস্ত ব্যবহারকারীদের কাছে বিস্তৃত বার্তা পাঠাতে চান, তাহলে chrome.gcm হল আদর্শ বিকল্প৷ লিগ্যাসি ফায়ারবেস মেসেজিং API-এর উপর নির্মিত, chrome.gcm এক দশকেরও বেশি সময় ধরে Chrome-এ সমর্থিত।

আপনি ওয়েব পুশ বা chrome.gcm ব্যবহার করতে পারেন ব্যবহারকারীদের বিজ্ঞপ্তি পাঠাতে যখন তাদের অ্যাকাউন্টে গুরুত্বপূর্ণ কিছু ঘটে, যেমন যখন একটি নতুন বার্তা আসে বা যখন একটি ফাইল শেয়ার করা হয়।

তাৎক্ষণিক বার্তা আদান প্রদান

ঘন ঘন, দ্বিমুখী যোগাযোগের প্রয়োজন? তারপর একটি ওয়েব সকেট আপনার জন্য সেরা বিকল্প হতে পারে. এটি আপনার এক্সটেনশন এবং আপনার সার্ভারের মধ্যে একটি দ্বিমুখী সংযোগ খোলে (অথবা সরাসরি অন্যান্য ব্যবহারকারীদের কাছেও)। এটি আপনাকে রিয়েল টাইমে ডেটা এবং বার্তা বিনিময় করতে দেয়। যদিও সেগুলি ওয়েবে সাধারণভাবে একটি দুর্দান্ত বিকল্প, তবে তাদের এক্সটেনশনগুলির সাথে কিছু সীমাবদ্ধতা রয়েছে যা আপনি যদি সেগুলি ব্যবহার করার পরিকল্পনা করেন তবে আপনাকে মনে রাখতে হবে৷

এই গাইডের বাকি অংশে আমরা উপলব্ধ বিকল্পগুলি ঘনিষ্ঠভাবে দেখব।

পুশ API এর সাথে পুশ বিজ্ঞপ্তিগুলি

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

chrome.gcm এর সাথে পুশ বিজ্ঞপ্তিগুলি

chrome.gcm API Firebase ক্লাউড মেসেজিং (FCM) এর সাথে সরাসরি সংযোগ প্রদান করে, এটি ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপে রিয়েল-টাইম আপডেট পাঠানোর একটি পরিষেবা। এটি একটি Chrome নির্দিষ্ট এক্সটেনশন API যা ব্রাউজারগুলিতে Push উপলব্ধ হওয়ার অনেক বছর আগে যোগ করা হয়েছিল। এটি Firebase-এর (এখন অবমুক্ত) লিগ্যাসি HTTP API ব্যবহার করে তৈরি করা হয়েছিল। যদিও সেই APIগুলি অন্য কোথাও অবচয়িত হয়, সেগুলি এক্সটেনশনগুলিতে অবমূল্যায়িত হয় না । তারা অদূর ভবিষ্যতের জন্য কাজ চালিয়ে যাবে। যাইহোক, এটি হচ্ছে লিগ্যাসি পুশ ব্যাকএন্ড, এতে বিষয়ের মতো বৈশিষ্ট্যের অভাব নেই।

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

WebSockets সহ রিয়েল টাইম বার্তা

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

পুশ বিজ্ঞপ্তিগুলির জন্য দুর্দান্ত নয়

chrome.gcm এর মতো এক্সটেনশন প্ল্যাটফর্ম API ব্যবহার না করে ওয়েব প্ল্যাটফর্মে WebSockets চলে, যখন আপনার এক্সটেনশনের বাইরে কোনো Websocket সংযোগ শুরু হয় তখন আপনার এক্সটেনশনকে জাগিয়ে তোলার কোনো উপায় Chrome-এর নেই৷

শুধুমাত্র সক্রিয় সংযোগ

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