Pusher: दो-तरफ़ा रीयल-टाइम संचार के लिए होस्टेड सेवा, जो चैनल, इवेंट और वेबहुक सूचनाओं के लिए बुनियादी ढाँचा प्रदान करती है। यह डेवलपर को अपना खुद का WebSocket सर्वर तैनात करने की आवश्यकता से मुक्त करती है और लाखों उपकरणों तक संदेश वितरण सुनिश्चित करती है। आधिकारिक Pusher दस्तावेज़ीकरण (2025) के अनुसार, सेवा दुनिया भर में मासिक रूप से 40 बिलियन से अधिक संदेश संसाधित करती है।
मुख्य बातें
Pusher दो-तरफ़ा रीयल-टाइम संचार के लिए एक क्लाउड सेवा है, जिसकी स्थापना 2011 में हुई थी। यह अपना खुद का WebSocket सर्वर प्रबंधित किए बिना रीयल टाइम में संदेश भेजने और प्राप्त करने के लिए तैयार बुनियादी ढाँचा प्रदान करता है। Pusher का उपयोग चैट, लाइव सूचनाएँ, सहयोगात्मक संपादन और गेम लीडरबोर्ड बनाने के लिए किया जाता है।
Socket.IO जैसी लाइब्रेरी के विपरीत, जिसमें अपना खुद का सर्वर तैनात करना और बनाए रखना आवश्यक है, Pusher SaaS (सेवा के रूप में सॉफ़्टवेयर) मॉडल पर काम करता है। डेवलपर पंजीकरण करता है, कुंजियाँ (app_id, key, secret) प्राप्त करता है और इवेंट प्रकाशित करने के लिए Pusher REST API का उपयोग करता है। सर्वर बुनियादी ढाँचा पूरी तरह से Pusher प्लेटफ़ॉर्म द्वारा प्रबंधित किया जाता है।
आधिकारिक Pusher ब्लॉग (2025) के अनुसार, प्लेटफ़ॉर्म दुनिया भर में 250,000 से अधिक सक्रिय परियोजनाओं की सेवा करता है। प्रसिद्ध ग्राहकों में GitHub (रीयल-टाइम सूचनाएँ), Trello (बोर्ड सिंक्रोनाइज़ेशन) और Intercom (सहायता चैट) शामिल हैं। Pusher विलंबता को कम करने के लिए अमेरिका, यूरोप और एशिया में डेटा केंद्रों का समर्थन करता है।
Pusher को 2011 में WebSocket के लिए पहली होस्टेड सेवाओं में से एक के रूप में लॉन्च किया गया था। 2014 में, कंपनी ने Pusher Channels प्रस्तुत किया — private और presence चैनलों के समर्थन के साथ वर्तमान आर्किटेक्चर। 2017 में, सर्वर-साइड इवेंट के लिए वेबहुक समर्थन जोड़ा गया। 2022 में, Pusher ने मोबाइल प्लेटफ़ॉर्म के लिए पुश सूचना सेवा Pusher Beams लॉन्च की।
Pusher आर्किटेक्चर सेल्फ-होस्टेड समाधानों से भिन्न है क्योंकि सभी सब्सक्रिप्शन हैंडलिंग, कनेक्शन प्रबंधन और इवेंट रूटिंग Pusher Cloud की ओर होती है। डेवलपर केवल अपने बैकएंड के माध्यम से private चैनलों के प्रमाणीकरण का प्रबंधन करता है।
Pusher आर्किटेक्चर प्रकाशक-सब्सक्राइबर मॉडल पर आधारित है। सर्वर एप्लिकेशन Pusher REST API के माध्यम से इवेंट प्रकाशित करते हैं, और क्लाइंट एप्लिकेशन उन्हें स्थायी WebSocket कनेक्शन के माध्यम से प्राप्त करते हैं। Pusher प्रकाशकों और सब्सक्राइबर्स के बीच मध्यस्थ के रूप में कार्य करता है।
जब सर्वर Pusher API पर POST अनुरोध के माध्यम से एक इवेंट भेजता है, तो प्लेटफ़ॉर्म लक्ष्य चैनल निर्धारित करता है और उस चैनल की सदस्यता लेने वाले सभी क्लाइंट को संदेश वितरित करता है। क्लाइंट पहले से खुले WebSocket कनेक्शन के माध्यम से इवेंट प्राप्त करते हैं, जो भौगोलिक स्थान के आधार पर 50–100 ms की विलंबता प्रदान करता है।
प्रत्येक क्लाइंट Pusher Client SDK के माध्यम से कनेक्शन स्थापित करता है, जो स्वचालित रूप से परिवहन चुनता है (WebSocket — प्राथमिकता, HTTP long-polling — फ़ॉलबैक)। SDK डेवलपर की भागीदारी के बिना पुन: कनेक्शन, डेटा क्रमांकन और त्रुटि प्रबंधन का प्रबंधन करता है। Pusher तकनीकी दस्तावेज़ीकरण (2025) के अनुसार, नेटवर्क रुकावट के बाद पुन: कनेक्शन का समय 1 सेकंड से कम है।
सिस्टम तीन घटकों से बना है: Pusher Server API (इवेंट प्रकाशित करने के लिए REST एंडपॉइंट), Pusher Client SDK (इवेंट की सदस्यता लेने के लिए लाइब्रेरी) और Pusher WebHook (कनेक्शन/डिस्कनेक्शन इवेंट के बारे में सर्वर सूचनाएँ)। सभी घटक अतुल्यकालिक और स्वतंत्र रूप से काम करते हैं।
Pusher Channels तीन प्रकार के चैनलों का समर्थन करता है, प्रत्येक विभिन्न उपयोग मामलों के लिए डिज़ाइन किया गया है। चैनल प्रकार पहुँच स्तर, प्रमाणीकरण तंत्र और उपलब्ध क्षमताओं को निर्धारित करता है।
| चैनल प्रकार | उपसर्ग | प्रमाणीकरण | उपयोग |
|---|---|---|---|
| Public | channel- | आवश्यक नहीं | सार्वजनिक डेटा: मुद्रा दरें, मौसम, समाचार फ़ीड |
| Private | private- | सर्वर पर अनुरोध हस्ताक्षर | व्यक्तिगत सूचनाएँ, चैट, उपयोगकर्ता डेटा |
| Presence | presence- | हस्ताक्षर + उपयोगकर्ता जानकारी | ऑनलाइन स्थिति, गेम रूम, सहयोगात्मक संपादन |
Public चैनल बिना प्रमाणीकरण के सभी क्लाइंट के लिए उपलब्ध हैं और प्रसारण डेटा के लिए उपयुक्त हैं। Private चैनल को डेवलपर के सर्वर के माध्यम से प्रमाणीकरण की आवश्यकता होती है: क्लाइंट अपने बैकएंड को socket_id और channel_name के साथ अनुरोध भेजता है, सर्वर Pusher गुप्त कुंजी के साथ अनुरोध पर हस्ताक्षर करता है और प्रमाणीकरण टोकन लौटाता है। Presence चैनल अतिरिक्त रूप से उपयोगकर्ता जानकारी (user_id, user_info) प्रसारित करते हैं और ट्रैक करने की अनुमति देते हैं कि वर्तमान में कौन ऑनलाइन है।
Pusher दस्तावेज़ीकरण (2025) के अनुसार, public और private चैनलों के लिए प्रति चैनल एक साथ जुड़े क्लाइंट की अधिकतम संख्या 10,000 है। Presence चैनलों के लिए, सीमा प्रति चैनल 10,000 उपयोगकर्ता है जिसमें प्रति एप्लिकेशन 100,000 उपयोगकर्ताओं तक का समर्थन है।
Pusher इवेंट मॉडल नामांकित इवेंट पर आधारित है जो एक चैनल में प्रकाशित होते हैं। प्रत्येक इवेंट का एक नाम (अधिकतम 200 वर्ण), JSON प्रारूप में डेटा और इवेंट आरंभकर्ता को डुप्लिकेट भेजने से रोकने के लिए वैकल्पिक socket_id होता है।
ट्रिगर Pusher API को HTTP POST अनुरोध हैं जो एक चैनल में इवेंट प्रकाशित करते हैं। अनुरोध प्रारूप: channel, name और data वाले निकाय के साथ POST /apps/{app_id}/events। Pusher Server API आधिकारिक लाइब्रेरी (PHP, Ruby, Python, Go, Java, Node.js) के माध्यम से किसी भी सर्वर वातावरण से ट्रिगर का समर्थन करता है।
Pusher बैच ट्रिगर का समर्थन करता है — एक अनुरोध के साथ कई चैनलों में एक इवेंट प्रकाशित करना। यह अनुक्रमिक कॉल की तुलना में अधिक कुशल है और परमाणु वितरण की गारंटी देता है। Pusher प्रदर्शन परीक्षण (2024) के अनुसार, 100 चैनलों पर बैच ट्रिगर में 30–50 ms लगते हैं, जबकि अनुक्रमिक कॉल में 2–5 सेकंड लगते हैं।
Pusher WebHook आपके सर्वर को बुनियादी ढाँचे की घटनाओं के बारे में सूचनाएँ प्राप्त करने की अनुमति देता है: क्लाइंट कनेक्शन, डिस्कनेक्शन, त्रुटि घटना। सत्यापन के लिए Webhook अनुरोध HMAC-SHA256 के साथ हस्ताक्षरित होते हैं। यह लॉगिंग, विश्लेषण और स्थिति सिंक्रोनाइज़ेशन के लिए महत्वपूर्ण है।
Pusher एकीकरण में दो भाग होते हैं: सर्वर-साइड (इवेंट प्रकाशित करना) और क्लाइंट-साइड (इवेंट की सदस्यता लेना)। आइए सर्वर भाग के लिए Node.js और क्लाइंट भाग के लिए JavaScript का उपयोग करके एक उदाहरण देखें। पहले, आपको Pusher डैशबोर्ड में एक एप्लिकेशन बनाना और क्रेडेंशियल प्राप्त करना होगा।
Pusher दस्तावेज़ीकरण (2025) के अनुसार, मूल योजना (Sandbox) में 100 समवर्ती कनेक्शन और प्रति दिन 200,000 संदेश शामिल हैं — विकास और परीक्षण के लिए पर्याप्त। उत्पादन योजनाएँ 1000 कनेक्शन के लिए $49 प्रति माह से शुरू होती हैं।
const Pusher = require('pusher');
const pusher = new Pusher({
appId: 'YOUR_APP_ID',
key: 'YOUR_KEY',
secret: 'YOUR_SECRET',
cluster: 'eu',
useTLS: true
});
pusher.trigger('my-channel', 'my-event', {
message: 'Hello from server',
timestamp: Date.now()
}).then(() => {
console.log('इवेंट प्रकाशित हुआ');
}).catch(console.error);
import Pusher from 'pusher-js';
const pusher = new Pusher('YOUR_KEY', {
cluster: 'eu',
forceTLS: true
});
const channel = pusher.subscribe('my-channel');
channel.bind('my-event', (data) => {
console.log('इवेंट प्राप्त हुआ:', data);
displayNotification(data.message);
});
Pusher iOS (Swift) और Android (Java/Kotlin) के लिए SDK प्रदान करता है जो JavaScript क्लाइंट की कार्यक्षमता को पूरी तरह से दोहराते हैं। मोबाइल SDK समान चैनल प्रकार, प्रमाणीकरण तंत्र और इवेंट मॉडल का समर्थन करते हैं। React Native के लिए, pusher-js पैकेज उपलब्ध है जो JavaScript ब्रिज के माध्यम से काम करता है।
मोबाइल उपकरणों पर, Pusher SDK एक्सपोनेंशियल बैकऑफ़ के साथ पुन: कनेक्शन तंत्र का उपयोग करके Wi-Fi और मोबाइल नेटवर्क के बीच स्विचिंग को स्वचालित रूप से संभालता है। यह iOS ऐप्स के लिए विशेष रूप से महत्वपूर्ण है, जहाँ iOS बैकग्राउंड ऑपरेशन के दौरान WebSocket कनेक्शन को जबरदस्ती बंद कर सकता है।
Pusher तकनीकी ब्लॉग (2024) के अनुसार, जब कोई सक्रिय इवेंट नहीं होता है तो एक Pusher कनेक्शन की औसत ट्रैफ़िक खपत 1–2 KB प्रति मिनट है। यह 30 सेकंड के अंतराल के साथ अनुकूलित हार्टबीट प्रोटोकॉल के माध्यम से प्राप्त किया जाता है। एक मध्यम आकार का एप्लिकेशन बैटरी जीवन को महत्वपूर्ण रूप से प्रभावित किए बिना 1000 समवर्ती Pusher कनेक्शन तक का समर्थन कर सकता है।
Pusher Beams APNs (iOS) और FCM (Android) के माध्यम से मोबाइल उपकरणों पर पुश सूचनाएँ भेजने के लिए एक अतिरिक्त सेवा है। Beams Pusher Channels के साथ एकीकृत होता है: यदि क्लाइंट ऑफ़लाइन है तो एक चैनल से इवेंट स्वचालित रूप से पुश सूचना ट्रिगर कर सकता है। यह ऐप बंद होने पर संदेश वितरण की समस्या को हल करता है।
Pusher सुरक्षा कई स्तरों पर लागू की गई है। Pusher API पर प्रत्येक अनुरोध app_secret का उपयोग करके HMAC-SHA256 के साथ हस्ताक्षरित होता है। यह सुनिश्चित करता है कि केवल अधिकृत सर्वर ही इवेंट प्रकाशित कर सकता है। क्लाइंट SDK एप्लिकेशन पहचान के लिए app_key का उपयोग करते हैं, लेकिन private और presence चैनलों तक पहुँचने के लिए अतिरिक्त प्रमाणीकरण की आवश्यकता होती है।
Private चैनल प्रमाणीकरण तीन चरणों में होता है: क्लाइंट pusher.subscribe('private-channel') कॉल करता है, Pusher Client SDK आपके बैकएंड एंडपॉइंट (/pusher/auth) पर HTTP अनुरोध भेजता है, सर्वर उपयोगकर्ता की अनुमतियाँ जाँचता है और गुप्त कुंजी के साथ हस्ताक्षरित प्रमाणीकरण टोकन लौटाता है। Pusher हस्ताक्षर सत्यापित करता है और सदस्यता की अनुमति देता है।
सभी अनुरोधों के लिए TLS कनेक्शन का उपयोग करने की अनुशंसा की जाती है (SDK में useTLS: true सेटिंग)। Pusher REST API पर सर्वर अनुरोधों के लिए IP पते द्वारा पहुँच प्रतिबंधों का भी समर्थन करता है। एंटरप्राइज़ योजनाओं के लिए, VPC (वर्चुअल प्राइवेट क्लाउड) और पृथक बुनियादी ढाँचे वाले समर्पित क्लस्टर का समर्थन उपलब्ध है।
अक्सर पूछे जाने वाले प्रश्न
Pusher एक होस्टेड सेवा (SaaS) है जिसमें सर्वर प्रबंधन की आवश्यकता नहीं है। Socket.IO एक लाइब्रेरी है जिसे आपको स्वयं तैनात करना होता है। Pusher सेटअप करना आसान है लेकिन स्केलिंग करने पर अधिक महँगा है, Socket.IO में DevOps काम की आवश्यकता होती है लेकिन बड़ी मात्रा में सस्ता है।
मुफ्त Sandbox योजना में 100 कनेक्शन और प्रति दिन 200,000 संदेश शामिल हैं। उत्पादन योजनाएँ $49/माह (1000 कनेक्शन, असीमित संदेश) से लेकर कस्टम शर्तों वाले एंटरप्राइज़ तक शुरू होती हैं।
Pusher HTTP long-polling पर स्वचालित फ़ॉलबैक के साथ WebSocket का उपयोग करता है। महत्वपूर्ण संदेशों के लिए, कम से कम एक बार वितरण गारंटी (at-least-once) के साथ Pusher की ओर एक कतार उपलब्ध है।
हाँ, Pusher यूरोपीय क्लस्टर (eu) के माध्यम से रूस से उपलब्ध है। यूरोपीय डेटा केंद्रों के लिए विलंबता 50–100 ms है। डेटा स्थानीयकरण आवश्यकताओं वाली परियोजनाओं के लिए, विकल्पों पर विचार करने की अनुशंसा की जाती है।
मुख्य प्रतियोगी हैं Ably (समान कार्यक्षमता, अधिक लचीली मूल्य निर्धारण), PubNub (वैश्विक वितरण नेटवर्क), Socket.IO (स्व-होस्टेड) और Firebase Realtime Database (Google पारिस्थितिकी तंत्र)।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें