𝗦𝗵𝗼𝗿𝘁 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, 𝗟𝗼𝗻𝗴 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, এবং SSE

আপনাকে একটি সার্ভার থেকে ক্লায়েন্টে ডেটা পাঠাতে হবে। এটি করার তিনটি উপায় নিচে দেওয়া হলো।

শর্ট পোলিং (Short Polling)

একটি রেস্টুরেন্টের গ্রাহকের কথা চিন্তা করুন। গ্রাহক প্রতি ৫ সেকেন্ড অন্তর ওয়েটারকে জিজ্ঞেস করছেন খাবার তৈরি হয়েছে কি না।

গ্রাহক নিয়মিত বিরতিতে এই প্রশ্নটি বারবার করছেন।

সমস্যাগুলো:

  • সার্ভারে অতিরিক্ত রিকোয়েস্ট আসে।
  • আপডেট পেতে দেরি হয়। যদি প্রশ্ন করার ১ সেকেন্ড পরেই খাবার তৈরি হয়ে যায়, তবুও গ্রাহককে আবার জিজ্ঞাসা করার জন্য আরও ৪ সেকেন্ড অপেক্ষা করতে হয়।
  • এটি নেটওয়ার্ক রিসোর্স অপচয় করে।

লং পোলিং (Long Polling)

গ্রাহক ওয়েটারকে বলছেন: আমার খাবার তৈরি হলে আমাকে জানাবেন।

ওয়েটার টেবিলের কাছেই অপেক্ষা করেন। শেফ যদি খাবার তৈরি করে ফেলেন, তবে ওয়েটার সাথে সাথে গ্রাহককে জানিয়ে দেন। যদি খাবার তৈরি হতে অনেক সময় লাগে, তবে ওয়েটার গ্রাহককে জানিয়ে দেন যে খাবার এখনও তৈরি হয়নি।

সমস্যাগুলো:

  • কানেকশনগুলো দীর্ঘ সময় ধরে খোলা থাকে।
  • কানেকশন টাইমআউট (connection timeout) হতে পারে।
  • একসাথে অনেক গ্রাহককে ম্যানেজ করা কঠিন হয়ে পড়ে।

সার্ভার সেন্ট ইভেন্টস (Server Sent Events - SSE)

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

মূল তথ্যসমূহ:

  • এটি একমুখী যোগাযোগ (one-way communication)।
  • ডেটা শুধুমাত্র সার্ভার থেকে ক্লায়েন্টের দিকে প্রবাহিত হয়।
  • ক্লায়েন্ট এই কানেকশনের মাধ্যমে কোনো মেসেজ ফেরত পাঠায় না।

উৎস: https://dev.to/guruharish_b/short-polling-long-polling-and-sse-20o5