Short Polling: এটি কী, কিভাবে কাজ করে এবং কোথায় ব্যবহার করা হয়

লেখক: IT Sectr প্রকাশিত: 2026-06-02 পড়ার সময়: 8 মিনিট

Short Polling হল একটি ক্লায়েন্ট-সার্ভার যোগাযোগ কৌশল যেখানে ক্লায়েন্ট আপডেটেড ডেটা পাওয়ার জন্য নির্দিষ্ট সময় অন্তর HTTP অনুরোধ পাঠায়। সার্ভার প্রতিটি অনুরোধ তৎক্ষণাৎ প্রক্রিয়া করে, এমনকি কিছু পরিবর্তন না হলেও বর্তমান অবস্থা ফেরত দেয়। Amazon Web Services, 2024 অনুসারে, Short Polling বাস্তবায়নে সবচেয়ে সহজ কিন্তু সবচেয়ে কম কার্যকর পোলিং পদ্ধতি, যা সার্ভার এবং নেটওয়ার্কে অতিরিক্ত লোড তৈরি করে।

মূল বিষয়

  • Short Polling — একটি কৌশল যেখানে ক্লায়েন্ট নতুন ডেটা আসার বিষয়টি বিবেচনা না করেই নির্দিষ্ট ব্যবধানে HTTP অনুরোধ পাঠায়।
  • নীতি — ক্লায়েন্ট টাইমার দ্বারা সার্ভারকে জিজ্ঞাসা করে, সার্ভার তাৎক্ষণিকভাবে বর্তমান অবস্থা ফেরত দেয় এমনকি তা পরিবর্তিত না হলেও।
  • সরলতা — বাস্তবায়নের জন্য সার্ভারে অ্যাসিনক্রোনাস প্রসেসিং প্রয়োজন হয় না, একটি স্ট্যান্ডার্ড REST এন্ডপয়েন্ট যথেষ্ট।
  • ত্রুটি — আপডেট না থাকলে অতিরিক্ত ট্রাফিক: প্রতিটি অনুরোধে সম্পূর্ণ HTTP হেডার এবং সার্ভার প্রসেসিং অন্তর্ভুক্ত।
  • প্রয়োগ — সহজ ড্যাশবোর্ড, কম পোলিং ফ্রিকোয়েন্সি সহ মনিটরিং এবং রিয়েল-টাইম প্রয়োজন ছাড়া অভ্যন্তরীণ সিস্টেম।

Short Polling কী

Short Polling একটি যোগাযোগ প্যাটার্ন যেখানে ক্লায়েন্ট পূর্বনির্ধারিত ব্যবধানে পর্যায়ক্রমে সার্ভারে HTTP অনুরোধ পাঠায়, এবং সার্ভার প্রতিটি অনুরোধ সিঙ্ক্রোনাসভাবে প্রক্রিয়া করে তাৎক্ষণিকভাবে ফলাফল ফেরত দেয়। পোলিং ব্যবধান ক্লায়েন্ট পাশে টাইমার ব্যবহার করে সেট করা হয় এবং ডেটা হালনাগাদ প্রয়োজনীয়তার উপর নির্ভর করে সাধারণত 1 থেকে 60 সেকেন্ড পর্যন্ত হয়ে থাকে।

Short Polling ঐতিহাসিকভাবে ওয়েব অ্যাপ্লিকেশনে রিয়েল-টাইম যোগাযোগ সংগঠিত করার প্রথম প্রক্রিয়া ছিল। 2000-এর দশকের শুরুতে, XMLHttpRequest-এর দ্বিতীয় প্রজন্মের আগে, ওয়েব পেজগুলি কন্টেন্ট আপডেট করার জন্য <meta http-equiv="refresh"> বা পর্যায়ক্রমিক iframe রিলোড ব্যবহার করত। 2005 সালে AJAX (Asynchronous JavaScript and XML) প্রযুক্তির আবির্ভাবের সাথে, Short Polling সম্পূর্ণ পৃষ্ঠা রিলোড ছাড়াই ডেটা আপডেট করার মানক পদ্ধতিতে পরিণত হয়।

Short Polling আর্কিটেকচার

Short Polling আর্কিটেকচারে তিনটি উপাদান রয়েছে: ক্লায়েন্ট টাইমার, HTTP অনুরোধ এবং সার্ভার হ্যান্ডলার। ক্লায়েন্ট একটি ব্যবধান টাইমার শুরু করে, যার প্রতিটি সক্রিয়করণে সার্ভারে GET অনুরোধ পাঠানো হয়। সার্ভার ডেটাবেস বা অন্য উৎস থেকে কোয়েরি করে, প্রতিক্রিয়া তৈরি করে এবং তাৎক্ষণিকভাবে ক্লায়েন্টে ফেরত দেয়। ক্লায়েন্ট ইন্টারফেস আপডেট করে এবং পরবর্তী টাইমার সক্রিয়করণের জন্য অপেক্ষা করে। অ্যাপ্লিকেশন সক্রিয় থাকাকালীন এই চক্র অনির্দিষ্টকাল ধরে চলতে থাকে।

অপ্রয়োজনীয় অনুরোধের সমস্যা

Short Polling-এর প্রধান সমস্যা হল অনিবার্য খালি অনুরোধ। যদি ডেটা খুব কমই পরিবর্তিত হয়, তবে বেশিরভাগ অনুরোধ "কোনো পরিবর্তন নেই" ফলাফল ফেরত দেয়, নেটওয়ার্ক ব্যান্ডউইথ এবং প্রসেসিং CPU সময় নষ্ট করে। 5 সেকেন্ড পোলিং ব্যবধানে 10,000 ক্লায়েন্টের সাথে, সার্ভার প্রতি সেকেন্ডে 2,000 অনুরোধ গ্রহণ করে — যার একটি উল্লেখযোগ্য অংশ অকেজো যদি আপডেট ফ্রিকোয়েন্সি প্রতি মিনিটে 1 ঘটনা হয়।

Short Polling কিভাবে কাজ করে

Short Polling একটি সরল চক্রে কাজ করে: ক্লায়েন্ট একটি নির্দিষ্ট সময়সীমা (যেমন, 5000 ms) সহ একটি ব্যবধান টাইমার সেট করে। প্রতিটি টাইমার সক্রিয়করণে, ক্লায়েন্ট সার্ভার এন্ডপয়েন্টে HTTP GET অনুরোধ তৈরি করে, সাধারণত শেষ আপডেটের টাইমস্ট্যাম্প প্যারামিটার সহ। সার্ভার অনুরোধ গ্রহণ করে, নির্দিষ্ট টাইমস্ট্যাম্পের পরে নতুন ডেটা আছে কিনা পরীক্ষা করে এবং প্রতিক্রিয়া ফেরত দেয় — হয় নতুন ডেটা সহ অথবা কোনো আপডেট নেই এমন ইঙ্গিত সহ।

Short Polling কনফিগারেশনের একটি গুরুত্বপূর্ণ প্যারামিটার হল পোলিং ব্যবধান। খুব ছোট ব্যবধান (3 সেকেন্ডের কম) সার্ভার এবং নেটওয়ার্কে উচ্চ লোড তৈরি করে। খুব দীর্ঘ ব্যবধান (30 সেকেন্ডের বেশি) ডেটার হালনাগাদ হ্রাস করে। সর্বোত্তম ব্যবধান পরিস্থিতির উপর নির্ভর করে: মনিটরিং ড্যাশবোর্ডের জন্য — 5–15 সেকেন্ড, নিউজ ফিডের জন্য — 30–60 সেকেন্ড, জটিল অ্যালার্টের জন্য — 1–3 সেকেন্ড। ব্যবধান নির্বাচন সবসময় ডেটার হালনাগাদ এবং অবকাঠামো লোডের মধ্যে আপস।

অভিযোজিত পোলিং ব্যবধান

নিষ্ক্রিয়তার সময় লোড কমাতে অভিযোজিত ব্যবধান ব্যবহার করা হয়: যদি ধারাবাহিকভাবে বেশ কয়েকটি অনুরোধ খালি ফলাফল ফেরত দেয়, তবে ব্যবধান বেড়ে যায় (যেমন, 5 থেকে 15 সেকেন্ড)। যখন নতুন ডেটা আসে, ব্যবধান সর্বনিম্ন মানে রিসেট হয়। এক্সপোনেনশিয়াল ব্যাকঅফ অ্যালগরিদম বিরল আপডেটের সময় খালি অনুরোধের সংখ্যা 3–5 গুণ কমাতে পারে।

JavaScript-এ Short Polling বাস্তবায়নের উদাহরণ

আসুন setInterval এবং Fetch API ব্যবহার করে ক্লায়েন্ট-সাইড Short Polling বাস্তবায়ন দেখি। ফাংশনটি এন্ডপয়েন্ট URL এবং মিলিসেকেন্ডে পোলিং ব্যবধান গ্রহণ করে।

js
function startPolling(url, intervalMs) {
    const lastTimestamp = new Date().toISOString();

    const timerId = setInterval(async () => {
        try {
            const params = new URLSearchParams({
                since: lastTimestamp
            });
            const response = await fetch(url + "?" + params);
            const data = await response.json();

            if (data.updates && data.updates.length > 0) {
                renderUpdates(data.updates);
                console.log("প্রাপ্ত", data.updates.length, "updates");
            }
        } catch (error) {
            console.error("পোলিং ব্যর্থ:", error);
        }
    }, intervalMs);

    return timerId;
}

const timer = startPolling("/api/updates", 5000);
// clearInterval(timer) বন্ধ করার জন্য

কোডটি 5 সেকেন্ডের পোলিং ব্যবধান তৈরি করে এবং সার্ভারে শেষ আপডেটের টাইমস্ট্যাম্প পাঠায়। সার্ভার ডেটা ফিল্টার করতে এবং শুধুমাত্র নতুন রেকর্ড ফেরত দিতে এই প্যারামিটার ব্যবহার করতে পারে, যা প্রেরিত তথ্যের পরিমাণ কমায়। ফাংশনটি পোলিং বন্ধ করার সম্ভাবনার জন্য টাইমার শনাক্তকারী ফেরত দেয়।

Short Polling-এর সার্ভার অংশ

Short Polling-এর জন্য সার্ভার-সাইড বাস্তবায়ন অত্যন্ত সরল — এটি একটি সাধারণ REST এন্ডপয়েন্ট যা GET অনুরোধ গ্রহণ করে এবং বর্তমান অবস্থা বা নির্দিষ্ট টাইমস্ট্যাম্পের পরে পরিবর্তিত ডেটা সহ JSON প্রতিক্রিয়া ফেরত দেয়।

js
const express = require("express");
const app = express();

let items = [];

app.get("/api/updates", (req, res) => {
    const since = req.query.since;
    const filtered = items.filter(item => item.timestamp > since);
    res.json({ updates: filtered });
});

app.listen(3000);

সার্ভার since প্যারামিটার গ্রহণ করে এবং সেই রেকর্ডগুলি ফিল্টার করে যাদের টাইমস্ট্যাম্প নির্দিষ্ট মান অতিক্রম করে। এই পদ্ধতি প্রতিটি প্রতিক্রিয়ায় ডেটার পরিমাণ হ্রাস করে, শুধুমাত্র বর্ধিত পরিবর্তন ফেরত দেয়। যখন কোনো নতুন ডেটা নেই, সার্ভার একটি খালি অ্যারে ফেরত দেয় এবং ক্লায়েন্ট নির্ধারিত সময়সূচী অনুযায়ী পোলিং চালিয়ে যায়।

Short Polling বনাম Long Polling

Short Polling এবং Long Polling একই সমস্যার সমাধান করে — সার্ভার থেকে ক্লায়েন্টে ডেটা পৌঁছে দেওয়া — কিন্তু দক্ষতায় মৌলিকভাবে ভিন্ন। Short Polling নির্দিষ্ট অনুরোধ ব্যবধান ব্যবহার করে, পূর্বাভাসযোগ্য লোড তৈরি করে, যেখানে Long Polling ঘটনা না হওয়া পর্যন্ত সংযোগ খোলা রাখে, খালি প্রতিক্রিয়ার সংখ্যা হ্রাস করে।

নির্ণায়কShort PollingLong Polling
বাস্তবায়ন জটিলতাকম, স্ট্যান্ডার্ড RESTমাঝারি, অ্যাসিনক্রোনাস প্রসেসিং
আপডেট বিলম্বনির্দিষ্ট, N সেকেন্ড পর্যন্তসর্বনিম্ন, ঘটনা ঘটলে
অনুরোধের সংখ্যাস্থির, প্রতি মিনিটে N অনুরোধঘটনা অনুসারে, সাধারণত অনেক কম
সার্ভার লোডছোট ব্যবধানে উচ্চসংযোগ ধারণ, অ্যাসিনক্রোনাস প্রসেসিং
নিষ্ক্রিয়তা ট্রাফিকসর্বোচ্চ, প্রতিটি অনুরোধ হেডার সহসর্বনিম্ন, একটি খোলা সংযোগ
স্কেলেবিলিটিসরল, স্টেটলেস অনুরোধজটিল, ভাগ করা ঘটনা কিউ প্রয়োজন

কৌশল নির্বাচন ডেটার আপডেট ফ্রিকোয়েন্সি উপর নির্ভর করে। যদি ঘটনা প্রতি 10 সেকেন্ডে একবারের বেশি ঘটে — উভয় পদ্ধতি তুলনীয় লোড দেয়, এবং Short Polling সহজ হতে পারে। যদি ঘটনা বিরল হয় (পরিবর্তনের মধ্যে ঘন্টা বা মিনিট) — Long Polling পছন্দনীয় কারণ এটি খালি অনুরোধ তৈরি করে না। মধ্যবর্তী পরিস্থিতির জন্য, পছন্দ অবকাঠামোর সীমাবদ্ধতা এবং WebSocket ব্যবহারের ক্ষমতার উপর নির্ভর করে।

কখন Short Polling ব্যবহার করবেন

Short Polling সেই পরিস্থিতিতে ব্যবহার করা হয় যেখানে ডেটা হালনাগাদের প্রয়োজনীয়তা কম এবং বাস্তবায়নের সরলতা দক্ষতার চেয়ে অগ্রাধিকার পায়। সবচেয়ে সাধারণ ক্ষেত্রগুলি হল অভ্যন্তরীণ প্রশাসনিক প্যানেল, কম অ্যালার্ট ফ্রিকোয়েন্সি সহ মনিটরিং সিস্টেম এবং অ্যাপ্লিকেশন যেখানে 15–30 সেকেন্ড বিলম্ব গ্রহণযোগ্য।

  • মনিটরিং ড্যাশবোর্ড — মেট্রিক্স সহ ড্যাশবোর্ড যা প্রতি 10–30 সেকেন্ডে আপডেট হয়, পরিবর্তনে তাত্ক্ষণিক প্রতিক্রিয়া প্রয়োজন হয় না।
  • স্ট্যাটাস পৃষ্ঠা — পরিষেবা প্রাপ্যতা পরীক্ষার পৃষ্ঠা যেখানে ডেটা প্রতি 30–60 সেকেন্ডে আপডেট হয় এবং বিলম্ব গুরুত্বপূর্ণ নয়।
  • বিশ্লেষণমূলক প্রতিবেদন — পর্যায়ক্রমিক ডেটা সংগ্রহ সহ অভ্যন্তরীণ বিশ্লেষণ সিস্টেম যেখানে 1 মিনিট পর্যন্ত হালনাগাদ গ্রহণযোগ্য।
  • সরল গেম — রিয়েল-টাইম প্রয়োজন ছাড়া টার্ন-ভিত্তিক মাল্টিপ্লেয়ার গেম, যেখানে প্রতি কয়েক সেকেন্ডে টার্ন আপডেট হয়।
  • পরীক্ষা — লোড টেস্টিং এবং ডিবাগিং পরিস্থিতি যেখানে Short Polling অন্যান্য কৌশলের সাথে তুলনার জন্য রেফারেন্স পোলিং পদ্ধতি হিসাবে ব্যবহৃত হয়।

গুরুত্বপূর্ণ সীমাবদ্ধতা — Short Polling সময়-সমালোচনামূলক অ্যাপ্লিকেশন (ট্রেডিং টার্মিনাল, জরুরি সতর্কতা সিস্টেম) এর জন্য উপযুক্ত নয় যেখানে এমনকি 1 সেকেন্ডের বিলম্বও অগ্রহণযোগ্য। এই ধরনের পরিস্থিতিতে, WebSocket, Server-Sent Events বা Long Polling ব্যবহার করা প্রয়োজন। Short Polling দিয়ে সিস্টেম ডিজাইন করার সময়, অনুরোধ বাজেট গণনা করা উচিত: 5 সেকেন্ড ব্যবধানে 1,000 ক্লায়েন্টের সাথে, সার্ভার প্রক্রিয়া করে প্রতি মিনিটে 12,000 অনুরোধ, যার জন্য সংশ্লিষ্ট সম্পদ ভিত্তি প্রয়োজন।

সচরাচর জিজ্ঞাসা

Short Polling সরল ভাষায় কী?

Short Polling হল যখন একটি অ্যাপ্লিকেশন প্রতি N সেকেন্ডে সার্ভারকে জিজ্ঞাসা করে: "নতুন ডেটা আছে?", এবং সার্ভার প্রতিবার উত্তর দেয়, এমনকি কিছু পরিবর্তন না হলেও। এটি প্রতি 5 মিনিটে আপনার মেইলবক্সে গিয়ে চেক করার মতো যে নতুন মেইল এসেছে কিনা।

Short Polling-এর জন্য কোন পোলিং ব্যবধান নির্বাচন করা উচিত?

সর্বোত্তম Short Polling ব্যবধান পরিস্থিতির উপর নির্ভর করে: মনিটরিং ড্যাশবোর্ডের জন্য 5–10 সেকেন্ড, নিউজ ফিডের জন্য 15–30 সেকেন্ড, স্ট্যাটাস পৃষ্ঠার জন্য 30–60 সেকেন্ড। ব্যবধান ডেটা হালনাগাদ এবং সার্ভার লোডের মধ্যে আপস হওয়া উচিত। 10 সেকেন্ড থেকে শুরু করুন এবং পরীক্ষার ফলাফল অনুযায়ী সামঞ্জস্য করুন।

Short Polling, Long Polling থেকে কীভাবে আলাদা?

Short Polling — ক্লায়েন্ট নির্দিষ্ট ব্যবধানে ক্রমাগত সার্ভারকে জিজ্ঞাসা করে। Long Polling — ক্লায়েন্ট একটি অনুরোধ করে, এবং সার্ভার ডেটা আসা পর্যন্ত এটি খোলা রাখে। Short Polling বাস্তবায়নে সহজ কিন্তু বিরল আপডেটের সময় বেশি খালি অনুরোধ তৈরি করে।

কখন Short Polling, WebSocket-এর চেয়ে ভাল?

Short Polling WebSocket-এর তুলনায় বাস্তবায়নে সহজ এবং একটি বিশেষ প্রোটোকলের প্রয়োজন হয় না — এটি সাধারণ HTTP অনুরোধের মাধ্যমে কাজ করে। Short Polling সরল অভ্যন্তরীণ সিস্টেমের জন্য ন্যায্য যেখানে 10–30 সেকেন্ড বিলম্ব গ্রহণযোগ্য এবং WebSocket সমর্থনের অবকাঠামো খরচ অযৌক্তিক।

Short Polling থেকে সার্ভারের লোড কিভাবে কমানো যায়?

অভিযোজিত ব্যবধান ব্যবহার করুন: যখন আপডেট না থাকে, অনুরোধের মধ্যে বিরতি 2–3 গুণ বাড়ান। শেষ অনুরোধের টাইমস্ট্যাম্প সহ since প্যারামিটার যোগ করুন যাতে সার্ভার শুধুমাত্র বর্ধিত পরিবর্তন ফেরত দেয়। ব্যাকএন্ড লোড কমাতে CDN বা প্রক্সি সার্ভার পাশে প্রতিক্রিয়া ক্যাশ করুন।

সারসংক্ষেপ

  • Short Polling — নির্দিষ্ট ব্যবধান সহ সার্ভার পোলিং কৌশল যেখানে ক্লায়েন্ট নতুন ডেটা আসার বিষয়টি বিবেচনা না করেই টাইমার দ্বারা HTTP অনুরোধ পাঠায়।
  • নীতিsetInterval বা পুনরাবৃত্ত setTimeout এর মাধ্যমে স্থির বা অভিযোজিত ব্যবধান সহ চক্রীয় পোলিং।
  • সুবিধা — বাস্তবায়ন এবং ডিবাগিংয়ের সর্বোচ্চ সরলতা, সার্ভারে অ্যাসিনক্রোনাস প্রসেসিং বা বিশেষ প্রোটোকলের প্রয়োজন নেই।
  • ত্রুটি — বিরল আপডেটের সময় অতিরিক্ত ট্রাফিক: সম্পূর্ণ HTTP হেডার সহ খালি অনুরোধ অকেজো লোড তৈরি করে।
  • সর্বোত্তম ব্যবধান — মনিটরিংয়ের জন্য 5–15 সেকেন্ড, কম পরিবর্তন ফ্রিকোয়েন্সির ডেটার জন্য 15–60 সেকেন্ড, জটিল পরিস্থিতির জন্য 1–3 সেকেন্ড।
  • তুলনা — Long Polling থেকে সরল কিন্তু বিরল ঘটনার জন্য কম কার্যকর; কর্মক্ষমতা এবং বিলম্বে WebSocket থেকে নিকৃষ্ট।
  • সুপারিশ — Short Polling শুধুমাত্র সরল অভ্যন্তরীণ সিস্টেমের জন্য ব্যবহার করুন যার ডেটা হালনাগাদের কম প্রয়োজনীয়তা আছে বা পরীক্ষায় রেফারেন্স পদ্ধতি হিসাবে।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন