Long Polling: यह क्या है, कैसे काम करता है और कहाँ उपयोग किया जाता है

लेखक: IT Sectr प्रकाशित: 2026-06-02 पढ़ने का समय: 8 मिनट

Long Polling एक क्लाइंट-सर्वर इंटरैक्शन तकनीक है जिसमें सर्वर HTTP अनुरोध को तब तक खुला रखता है जब तक नया डेटा उपलब्ध न हो जाए या टाइमआउट समाप्त न हो जाए। आवर्त्तिक पोलिंग के विपरीत, सर्वर तुरंत खाली प्रतिक्रिया नहीं लौटाता है बल्कि क्लाइंट को डेटा भेजने के लिए किसी घटना के घटित होने का इंतजार करता है। MDN Web Docs, 2024 के अनुसार, Long Polling रियल-टाइम एप्लिकेशन्स के लिए एक लोकप्रिय हल बना हुआ है जहां WebSocket उपलब्ध नहीं है या अत्यधिक है।

मुख्य बातें

  • Long Polling — एक तकनीक जिसमें सर्वर HTTP अनुरोध को डेटा उपलब्ध होने तक रोके रखता है और तभी क्लाइंट को प्रतिक्रिया भेजता है।
  • तंत्र — लंबे HTTP कनेक्शन पर आधारित: क्लाइंट अनुरोध भेजता है, सर्वर तुरंत जवाब नहीं देता बल्कि किसी घटना या टाइमआउट का इंतजार करता है।
  • अंतर Short Polling से यह है कि सर्वर डेटा ट्रांसमिशन शुरू करता है, और क्लाइंट टाइमर पर सर्वर से पूछताछ नहीं करता है।
  • उपयोग में चैट, सूचनाएँ, गतिविधि फ़ीड और रियल-टाइम मॉनिटरिंग सिस्टम शामिल हैं।
  • सीमा — खुले अनुरोधों को बनाए रखने के कारण बड़ी संख्या में एकसाथ कनेक्शनों पर सर्वर पर उच्च भार।

Long Polling क्या है

Long Polling एक क्लाइंट-सर्वर आर्किटेक्चर में एक संचार पैटर्न है जहां क्लाइंट HTTP अनुरोध शुरू करता है, और सर्वर नए डेटा उपलब्ध होने या निर्दिष्ट टाइमआउट समाप्त होने तक प्रतिक्रिया भेजने में विलंब करता है। प्रतिक्रिया प्राप्त करने के बाद, क्लाइंट तुरंत अगला अनुरोध भेजता है, जो एक निरंतर कनेक्शन का प्रभाव पैदा करता है।

Long Polling तकनीक खाली HTTP अनुरोधों की संख्या को कम करने के लिए Short Polling के विकासशील विकास के रूप में उभरी। पारंपरिक पोलिंग में, क्लाइंट हर N सेकंड में अनुरोध भेजता है, और सर्वर नए डेटा न होने पर भी जवाब देता है। Long Polling में, सर्वर कनेक्शन होल्डिंग तंत्र का उपयोग करता है, जो बेकार ट्रैफिक को नाटकीय रूप से कम करता है।

Long Polling का इतिहास

2011 में WebSocket के आगमन से पहले, Long Polling वेब पर रियल-टाइम संचार का प्राथमिक तरीका था। Facebook और Gmail जैसी कंपनियों ने 2010 के दशक में अपने चैट और सूचनाओं के लिए इस तकनीक का उपयोग किया। High Performance Browser Networking (Grigorik, 2013) के अनुसार, Long Polling ने उस अवधि के प्रमुख वेब एप्लिकेशन्स में 95% तक सभी रियल-टाइम कनेक्शनों को संभाला।

Long Polling का मूल सिद्धांत

एक क्लाइंट सर्वर को एक मानक HTTP अनुरोध भेजता है। अनुरोध प्राप्त करने पर, सर्वर तुरंत प्रतिक्रिया नहीं लौटाता — वह अनुरोध को प्रतीक्षा क्यू में रखता है। जब सर्वर पर कोई घटना होती है (नया संदेश, डेटा परिवर्तन), सर्वर एक प्रतिक्रिया बनाता है और इसे क्लाइंट को भेजता है। प्रतिक्रिया प्राप्त करने पर, क्लाइंट तुरंत एक नया Long Polling अनुरोध बनाता है, और चक्र दोहराया जाता है।

Long Polling कैसे काम करता है

Long Polling निम्नलिखित चरणों के अनुसार काम करता है। क्लाइंट सर्वर एंडपॉइंट पर HTTP GET अनुरोध भेजता है। अनुरोध प्राप्त करने पर, सर्वर इवेंट क्यू में नए डेटा की जाँच करता है। यदि कोई डेटा नहीं है, तो सर्वर अनुरोध को प्रतीक्षा अवस्था में रखता है, तुरंत जवाब नहीं भेजता। होल्डिंग तंत्र सर्वर कार्यान्वयन पर निर्भर करता है — आमतौर पर कॉलबैक के साथ असिंक्रोनस प्रोसेसिंग या इवेंट-ड्रिव्न आर्किटेक्चर का उपयोग किया जाता है।

जब सर्वर पर कोई घटना होती है (उदाहरण के लिए, किसी उपयोगकर्ता ने चैट में संदेश भेजा), सर्वर एक HTTP प्रतिक्रिया बनाता है जिसमें यह डेटा होता है और कनेक्शन समाप्त करता है। क्लाइंट प्रतिक्रिया प्राप्त करता है, डेटा संसाधित करता है और तुरंत एक नया अनुरोध शुरू करता है। यदि प्रतीक्षा अवधि के दौरान कोई डेटा दिखाई नहीं देता, तो सर्वर टाइमआउट समाप्त होने पर एक खाली प्रतिक्रिया भेजता है, और क्लाइंट भी कनेक्शन को पुनः स्थापित करता है। भार और विलंब के बीच संतुलन के लिए टाइमआउट आमतौर पर 30–60 सेकंड का होता है।

टाइमआउट और कनेक्शन प्रबंधन

Long Polling के लिए एक मुख्य कॉन्फ़िगरेशन पैरामीटर प्रतीक्षा टाइमआउट है। बहुत छोटा टाइमआउट (10 सेकंड से कम) अनुरोधों की संख्या में वृद्धि का कारण बनता है, जो इस तकनीक को Short Polling के करीब ले आता है। बहुत लंबा टाइमआउट (120 सेकंड से अधिक) मध्यवर्ती प्रॉक्सी और लोड बैलेंसर द्वारा कनेक्शन टूटने का कारण बन सकता है। अधिकांश परिदृश्यों के लिए अनुशंसित मान 30–45 सेकंड है।

एकाधिक घटनाओं को संभालना

यदि एक Long Polling अनुरोध के दौरान सर्वर पर एकाधिक घटनाएँ होती हैं, तो सर्वर को उन्हें एक ही प्रतिक्रिया में भेजना चाहिए या क्लाइंट पक्ष पर एक इवेंट क्यू व्यवस्थित करना चाहिए। इसके लिए, इवेंट बफ़रिंग का उपयोग किया जाता है: सर्वर अनुरोध की होल्डिंग अवधि के दौरान होने वाली घटनाओं को इकट्ठा करता है और उन्हें प्रतिक्रिया बोडी में डेटा की एक श्रृंखला के रूप में भेजता है।

JavaScript में Long Polling कार्यान्वयन उदाहरण

आगे की ओर, आधुनिक Fetch API का उपयोग करके क्लाइंट पक्ष पर एक सरल Long Polling कार्यान्वयन देखते हैं। क्लाइंट फ़ंक्शन एक अनुरोध भेजता है और प्रतिक्रिया प्राप्त करने के बाद रिकर्सिवली स्वयं को कॉल करता है।

js
async function longPoll(url) {
    try {
        const response = await fetch(url);
        const data = await response.json();

        handleData(data);
        longPoll(url);
    } catch (error) {
        console.error("Long Polling त्रुटि", error);
        setTimeout(() => longPoll(url), 3000);
    }
}

function handleData(data) {
    if (data.events && data.events.length > 0) {
        data.events.forEach(event => {
            console.log("नया ईवेंट:", event);
        });
    }
}

longPoll("/api/events");

यह कोड एक अनंत Long Polling लूप बनाता है: प्रतिक्रिया प्राप्त करने के बाद, फ़ंक्शन तुरंत एक नया अनुरोध भेजता है। कनेक्शन त्रुटि के मामले में, सर्वर पर हिमले के भार से बचने के लिए पुनः प्रयास करने से पहले एक तीन सेकंड का विलंब निर्धारित किया जाता है।

Node.js पर सर्वर कार्यान्वयन

सर्वर पक्ष पर, एक घटना होने या टाइमआउट समाप्त होने तक अनुरोध को रोकना आवश्यक है। Node.js में EventEmitter का उपयोग करने का एक उदाहरण इस तंत्र को प्रदर्शित करता है।

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

const eventBus = new EventEmitter();

app.get("/api/events", (req, res) => {
    const timeout = setTimeout(() => {
        res.json({ events: [] });
    }, 30000);

    eventBus.once("new-event", (data) => {
        clearTimeout(timeout);
        res.json({ events: [data] });
    });
});

app.post("/api/events", (req, res) => {
    eventBus.emit("new-event", req.body);
    res.send({ status: "ok" });
});

app.listen(3000);

सर्वर भाग नए डेटा दिखाई देने पर प्रतीक्षारत Long Polling कनेक्शनों को सूचित करने के लिए EventEmitter का उपयोग करता है। 30 सेकंड टाइमआउट तक पहुँचने पर, सर्वर घटनाओं की एक खाली श्रृंखला लौटाता है, और क्लाइंट एक नया अनुरोध बनाता है।

Long Polling कब उपयोग किया जाता है

Long Polling का उपयोग उन परिदृश्यों में किया जाता है जहां रियल-टाइम डेटा डेलीवरी आवश्यक है लेकिन तकनीकी या अवसंरचनात्मक कारणों से WebSocket का उपयोग संभव नहीं है। सबसे आम मामले कॉर्करेट प्रॉक्सी और फ़ायरवॉल हैं जो WebSocket कनेक्शन्स को ब्लॉक करते हैं, साथ ही सर्वर पक्ष पर सीमित प्रोटोकॉल समर्थन वाले वातावरण हैं।

  • चैट और मेसेंजर — Long Polling वेब संस्करणों में संदेश डेलीवरी प्रदान करता है जो WebSocket के बिना HTTP पर काम करते हैं।
  • डैशबॉर्ड पैनल — DevOps मैट्रिक्स, लॉग्स और अलर्ट्स के लिए रियल-टाइम सिस्टम, जहाँ 1–5 सेकंड की देरी के साथ डेटा की अद्यतनता महत्वपूर्ण है।
  • सूचनाएँ — Service Workers और Push API का उपयोग किए बिना ब्राउज़र में पुश-जैसी अलर्ट डेलीवरी।
  • गतिविधि फ़ीड — नए पोस्ट दिखाई देने पर स्वचालित यापडेट सामग्री के साथ सोशल नेटवर्क और समाचार फ़ीड।
  • सहयोग — उपयोगकर्ताओं के बीच परिवर्तनों के मूल सिंक्रोनिजेशन के साथ Google Docs-जैसे संपादक।

मुख्य कारक Long Polling के चयन में उलटी संगतता है। सभी HTTP क्लाइंट और सर्वर इस विधि का समर्थन करते हैं, जो इसे बिना अतिरिक्त निर्भरताओं के रियल-टाइम कार्यक्षमता के लिए एक सार्वभौमिक हल बनाता है। HTTP Archive (2024) के अनुसार, लगभग 8% वेबसाइटें मूल रियल-टाइम कार्यक्षमता के लिए Long Polling का उपयोग जारी रखती हैं।

Long Polling vs Short Polling

Long Polling और Short Polling एक ही समस्या का समाधान करते हैं — सर्वर से क्लाइंट तक डेटा पहुँचाना — लेकिन तंत्र और दक्षता में मूलभूत रूप से भिन्न हैं। Short Polling एक निश्चित पोलिंग अंतराल का उपयोग करता है जहां क्लाइंट सर्वर पर नए डेटा के दिखाई देने के बावजूद समान समय अंतरालों पर HTTP अनुरोध भेजता है।

विशेषताLong PollingShort Polling
प्रतिक्रिया दीक्षासर्वर घटना पर डेटा भेजता हैसर्वर प्रत्येक क्लाइंट अनुरोध का जवाब देता है
डेलीवरी विलंबन्यूनतम, 1 सेकंड तकपोलिंग अंतराल पर निर्भर, 3–60 सेकंड
अनुरोधों की संख्या1 अनुरोध प्रति घटना या टाइमआउटN अनुरोध प्रति समय इकाई (निश्चित)
निष्क्रिय ट्रैफिककम (एक खुला अनुरोध)उच्च (हर N सेकंड अनुरोध)
सर्वर भारकनेक्शन होल्डिंगबार-बार के अनुरोधों की प्रोसेसिंग
कार्यान्वयन जटिलतामध्यम (असिंक्रोनस प्रोसेसिंग)कम (सामान्य HTTP अनुरोध)

Short Polling कार्यान्वयन में सरल है लेकिन डेटा अपडेट आवृत्ति समान होने पर सर्वर और नेटवर्क पर काफी अधिक भार बनाता है। यदि 5 सेकंड से कम विलंब आवश्यक है, तो Short Polling प्रति मिनट दर्जनों अनुरोध पैदा करता है, जबकि Long Polling प्रति घटना या टाइमआउट एक अनुरोध का उपयोग करता है। कम घटनाओं वाले एप्लिकेशन्स के लिए, Long Polling ट्रैफिक में कई गुना अधिक कुशल है।

Long Polling vs WebSocket

WebSocket एक पूर्ण द्वि-दिशात्मक रियल-टाइम प्रोटोकॉल है जो प्रारंभिक HTTP हैंडशेक के बाद TCP पर काम करता है। Long Polling के विपरीत, WebSocket एक ही स्थायी कनेक्शन स्थापित करता है और सर्वर को बिना नया HTTP अनुरोध बनाए किसी भी समय क्लाइंट को डेटा भेजने की अनुमति देता है।

Long Polling और WebSocket के बीच चयन कई कारकों पर निर्भर करता है। अनुकूलता: Long Polling किसी भी प्रॉक्सी और फ़ायरवॉल के माध्यम से काम करता है, जबकि WebSocket कॉर्परेट नेटवर्क्स द्वारा अवरुद्ध हो सकता है। प्रदर्शन: WebSocket में कम ओवरहेड (पूर्ण HTTP हेडर की तुलना में 2 बाईट प्रति फ़्रेम) है, जो उच्च संदेश आवृत्ति पर महत्वपूर्ण है। स्केलेबिलिटी: Long Polling को अनेक कनेक्शन्स रखने के कारण सर्वर पक्ष पर अधिक संसाधनों की आवश्यकता होती है, जबकि WebSocket प्रति सेशन एक निश्चित कनेक्शन का उपयोग करता है।

  • Long Polling — कम घटना आवृत्ति (1–10 घटनाएँ प्रति मिनट), सीमित बुनियादी ढांचा या पुराने ब्राउज़रों का समर्थन करने की आवश्यकता वाले एप्लिकेशन्स के लिए सबसे अच्छा विकल्प।
  • WebSocket — सौंं मेसेज प्रति सेकंड वाले उच्च-भार रियल-टाइम एप्लिकेशन्स (शेयर बाजार डेटा, ऑनलाइन गेम्स, सहयोगिता संपादक) के लिए इष्टतम हल।
  • हाइब्रिड दृष्टिकोण — कुछ एप्लिकेशन्स स्वचालित प्रोटोकॉल स्विचिंग के साथ, WebSocket का समर्थन न करने वाले क्लाइंट्स के लिए Long Polling का उपयोग फ़ॉलबैक के रूप में करते हैं।

Mozilla Developer Network (2024) के अनुसार, WebSocket को 2011–2015 के संस्करणों से सभी आधुनिक ब्राउज़रों द्वारा समर्थित किया जाता है, लेकिन कॉर्परेट प्रॉक्सी (उदाहरण Symantec Blue Coat) 15–20% कॉर्परेट नेटवर्क्स में इसे ब्लॉक करना जारी रखते हैं, जो Long Polling को एक फ़ॉलबैक हल के रूप में प्रासंगिक रखता है।

अक्सर पूछे जाने वाले प्रश्न

सरल शब्दों में Long Polling क्या है?

Long Polling तब होता है जब क्लाइंट सर्वर से कहता है: “जब नया डेटा उपलब्ध हो तो जवाब दो”, और सर्वर एक घटना की प्रतीक्षा में कनेक्शन को खुला रखता है। जैसे ही डेटा दिखाई देता है, सर्वर जवाब देता है, और क्लाइंट तुरंत वही सवाल दोबारा पूछता है।

Long Polling, Short Polling से कैसे अलग है?

Short Polling में, क्लाइंट हर N सेकंड में सर्वर से पूछता है कि डेटा है या नहीं, भले हो या नहीं। Long Polling में, क्लाइंट एक बार पूछता है, और सर्वर केवल तभी जवाब देता है जब डेटा वास्तव में उपलब्ध होता है। Long Polling कम खाली अनुरोध बनाता है और नेटवर्क लोड कम करता है।

WebSocket के बजाय Long Polling कब उपयोग करें?

Long Polling का उपयोग तब करें जब WebSocket उपलब्ध न हो: कॉर्परेट नेटवर्क्स में जो गैर-HTTP प्रोटोकॉल को ब्लॉक करते हैं, जब पुराने ब्राउज़रों के साथ पिछली अनुकूलता की आवश्यकता हो या होस्टिंग पक्ष पर सीमाएँ हों। WebSocket उच्च-आवृत्ति डेटा आदान-प्रदान के लिए अधिक कुशल है।

Long Polling के लिए कौन सा टाइमआउट निर्धारित करें?

Long Polling के लिए अनुशंसित टाइमआउट 30–45 सेकंड है। कम मान (10–15 सेकंड) अनुरोधों की संख्या बढ़ाता है, जबकि अधिक मान (60+ सेकंड) मध्यवर्ती लोड बैलेंसर द्वारा कनेक्शन टूटने का जोखिम पैदा करता है। टाइमआउट मान नेटवर्क आर्किटेक्चर और विलंब आवश्यकताओं पर निर्भर करता है।

Long Polling की क्या कमियाँ हैं?

Long Polling की मुख्य कमियाँ हैं: हजारों कनेक्शन्स रखने पर सर्वर पर उच्च मेमोरी खपत, क्षैतिज स्केलिंग में कठिनाई (एक केंद्रीय घटना क्यू की आवश्यकता) और वास्तविक द्वि-दिशात्मक संचार का अभाव — सर्वर को डेटा भेजने के लिए अलग POST अनुरोधों की आवश्यकता होती है।

सारांश

  • Long Polling — एक रियल-टाइम डेटा स्थानांतरण तकनीक जहां सर्वर HTTP अनुरोध को किसी घटना के घटित होने तक रोके रखता है और तभी क्लाइंट को प्रतिक्रिया भेजता है।
  • तंत्र — असिंक्रोनस HTTP कनेक्शन होल्डिंग पर आधारित: सर्वर खाली प्रतिक्रिया नहीं लौटाता, बल्कि 30–45 सेकंड डेटा या टाइमआउट का इंतजार करता है।
  • लाभ — सभी HTTP बुनियादे ढांचे के साथ संगतता: WebSocket के विपरीत, प्रॉक्सी, लोड बैलेंसर और फ़ायरवॉल Long Polling को ब्लॉक नहीं करते।
  • हानि — सर्वर पक्ष पर संसाधन-गतिशील: प्रत्येक कनेक्शन मेमोरी की खपत करता है और घटनाओं न होने पर भी असिंक्रोनस प्रोसेसिंग की आवश्यकता होती है।
  • उपयोग — कम अपडेट आवृत्ति के साथ चैट, सूचनाएँ, डैशबॉर्ड पैनल, गतिविधि फ़ीड और सहयोगिता संपादक।
  • तुलना — दुर्लभ घटनाओं के लिए Short Polling से अधिक दक्ष, लेकिन उच्च-आवृत्ति परिदृश्यों के लिए प्रदर्शन और मापनीयता में WebSocket से कमतर।
  • अनुशंसा — WebSocket अनुपलब्ध होने पर फ़ॉलबैक के रूप में या कम घटना आवृत्ति के साथ सरल रियल-टाइम परिदृश्यों के लिए Long Polling का उपयोग करें।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें