एकदिशीय पुश के लिए Server-Sent Events (SSE)
Server-Sent Events (SSE) को WebSockets के सरल विकल्प के रूप में जानें, जो सर्वर से क्लाइंट तक एकदिशीय डेटा अपडेट भेजने के लिए उपयोगी है।
एकदिशीय पुश के लिए Server-Sent Events (SSE), CoddyKit पर रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Server-Sent Events का परिचय
स्वागत है! इस पाठ में हम Server-Sent Events (SSE) का अध्ययन करेंगे, जो सर्वर द्वारा क्लाइंट को रीयल-टाइम अपडेट भेजने का एक शक्तिशाली लेकिन सरल तरीका है।
पारंपरिक HTTP अनुरोधों में क्लाइंट हमेशा सर्वर से डेटा माँगता है, जबकि SSE सर्वर को यह सुविधा देता है कि नई जानकारी उपलब्ध होते ही वह क्लाइंट को डेटा भेज सके, और क्लाइंट को लगातार पूछताछ करने की आवश्यकता न हो।
SSE: सरल एकदिशीय पुश
आप रीयल-टाइम संचार के लिए WebSockets से परिचित हो सकते हैं। WebSockets जहाँ पूर्ण दो-तरफ़ा संचार सक्षम करते हैं, वहीं SSE विशेष रूप से सर्वर से क्लाइंट तक एकदिशीय डेटा प्रवाह के लिए बनाया गया है।
इससे उन परिस्थितियों में SSE अधिक सरल और अक्सर अधिक कुशल विकल्प बन जाता है, जहाँ क्लाइंट को केवल अपडेट प्राप्त करने हों और उन्हें रीयल-टाइम में वापस भेजने की आवश्यकता न हो।
SSE कनेक्शन कैसे काम करते हैं
SSE एक मानक HTTP कनेक्शन पर काम करता है। क्लाइंट एक सामान्य HTTP अनुरोध शुरू करता है, लेकिन सर्वर विशेष Content-Type: text/event-stream हेडर के साथ प्रतिक्रिया देता है।
डेटा भेजने के बाद कनेक्शन बंद करने के बजाय सर्वर इसे खुला रखता है। इसके बाद जब भी अपडेट तैयार होते हैं, वह क्लाइंट को नया डेटा भेजता है और इस एक स्थायी कनेक्शन पर इवेंट की स्ट्रीमिंग करता है।
EventSource से सुनना
क्लाइंट-साइड (आमतौर पर वेब ब्राउज़र में), SSE स्ट्रीम से कनेक्ट करने और आने वाले इवेंट सुनने के लिए अंतर्निहित EventSource एपीआई का उपयोग करते हैं।
SSE एंडपॉइंट से कनेक्ट करने और संदेशों का लॉग दर्ज करने के लिए JavaScript का एक मूल स्निपेट यहाँ दिया गया है:
const eventSource = new EventSource('/stream');
eventSource.onmessage = (event) => {
console.log('New data:', event.data);
// Update your UI here
};
eventSource.onerror = (error) => {
console.error('SSE Error:', error);
eventSource.close(); // Close connection on error
};SSE सर्वर बनाना
आइए देखें कि एक सरल सर्वर SSE संदेश कैसे भेज सकता है। यह Node.js उदाहरण एक HTTP सर्वर बनाता है, जो हर सेकंड वर्तमान समय भेजता है।
यह कोड चलाएँ, फिर ब्राउज़र खोलकर http://localhost:8080 पर जाएँ और अपने कंसोल में इवेंट स्ट्रीम देखें।
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive'
});
// Send a message every second
const intervalId = setInterval(() => {
res.write('data: The time is ' + new Date().toLocaleTimeString() + '\n\n');
}, 1000);
// Clean up on client disconnect
req.on('close', () => {
clearInterval(intervalId);
res.end();
});
}).listen(8080, () => {
console.log('SSE server running on http://localhost:8080');
});कस्टम SSE इवेंट प्रकार भेजना
डिफ़ॉल्ट message इवेंट के अलावा, SSE आपको event: फ़ील्ड का उपयोग करके कस्टम इवेंट प्रकार परिभाषित करने की सुविधा देता है। इससे क्लाइंट अलग-अलग प्रकार के अपडेट को अलग-अलग तरीके से संभाल सकते हैं।
क्लाइंट पर आप eventSource.addEventListener('myCustomEvent', handler) का उपयोग करेंगे।
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive'
});
let counter = 0;
const intervalId = setInterval(() => {
if (counter % 2 === 0) {
res.write('event: heartbeat\n');
res.write('data: Ping! ' + counter + '\n\n');
} else {
res.write('event: update\n');
res.write('data: New data point: ' + Math.random().toFixed(2) + '\n\n');
}
counter++;
}, 2000);
req.on('close', () => {
clearInterval(intervalId);
res.end();
});
}).listen(8080, () => {
console.log('SSE server (custom events) running on http://localhost:8080');
});स्वचालित पुनःकनेक्शन का जादू
EventSource की सबसे सुविधाजनक सुविधाओं में से एक इसकी अंतर्निहित स्वचालित पुनःकनेक्शन सुविधा है। यदि कनेक्शन टूट जाता है (नेटवर्क संबंधी समस्याओं, सर्वर के पुनःआरंभ आदि के कारण), तो ब्राउज़र थोड़ी देर बाद अपने-आप पुनःकनेक्ट करने का प्रयास करेगा।
कनेक्शन विफलताओं और पुनःप्रयासों को संभालने के लिए आपको अतिरिक्त कोड लिखने की आवश्यकता नहीं होती, जिससे लगातार अपडेट के लिए SSE बहुत विश्वसनीय बन जाता है।
SSE का उपयोग करने के लाभ
SSE सर्वर से क्लाइंट तक डेटा भेजने के लिए कई महत्वपूर्ण लाभ प्रदान करता है:
- सरलता: एकतरफ़ा डेटा के लिए WebSockets की तुलना में इसे लागू करना आसान है।
- अंतर्निहित पुनःकनेक्शन:
EventSourceकनेक्शन टूटने की स्थिति को अपने-आप संभालता है। - HTTP संगतता: यह मानक HTTP/HTTPS पर काम करता है और मौजूदा ढाँचे (प्रॉक्सी, फ़ायरवॉल) के साथ संगत है।
- HTTP/2 बहुसंकेतन: यह अन्य HTTP अनुरोधों के साथ एक ही कनेक्शन को कुशलता से साझा कर सकता है।
SSE की सीमाएँ
शक्तिशाली होने के बावजूद, SSE सभी रीयल-टाइम परिस्थितियों के लिए उपयुक्त नहीं है:
- केवल एकदिशीय: यह केवल सर्वर से क्लाइंट तक संचार का समर्थन करता है। क्लाइंट से सर्वर तक या वास्तविक द्विदिशीय संचार के लिए WebSockets आवश्यक हैं।
- बाइनरी डेटा नहीं: यह UTF-8 में एन्कोड किए गए टेक्स्ट तक सीमित है। आप SSE के माध्यम से कच्चा बाइनरी डेटा सीधे नहीं भेज सकते।
- ब्राउज़र कनेक्शन सीमाएँ: ब्राउज़र आम तौर पर प्रत्येक डोमेन के लिए एक साथ बनाए जा सकने वाले SSE कनेक्शनों की संख्या सीमित रखते हैं (जैसे, 6)।
वास्तविक दुनिया में SSE के उदाहरण
SSE उन अनुप्रयोगों में विशेष रूप से उपयोगी है जिन्हें लगातार, एकतरफ़ा अपडेट की आवश्यकता होती है:
- लाइव शेयर मूल्य: ट्रेडिंग डैशबोर्ड पर मूल्य अपडेट लगातार भेजना।
- समाचार फ़ीड: ताज़ा समाचार या लेखों के अपडेट तुरंत पहुँचाना।
- गतिविधि प्रवाह: रीयल-टाइम सूचनाएँ (जैसे, नए ईमेल या सोशल मीडिया गतिविधि)।
- डैशबोर्ड: सिस्टम मेट्रिक्स या उपयोगकर्ता आँकड़ों की निगरानी के लिए लाइव अपडेट।
SSE त्वरित जाँच
Server-Sent Events की अपनी समझ जाँचने का समय आ गया है!
पाठ का सारांश: SSE
बहुत अच्छा! आपने अब Server-Sent Events (SSE) के बारे में सीख लिया है।
- SSE एकल HTTP कनेक्शन पर एकदिशीय, सर्वर से क्लाइंट तक डेटा भेजने की सुविधा देता है।
- एकतरफ़ा अपडेट के लिए यह WebSockets से सरल है और इसमें स्वचालित पुनःकनेक्शन की सुविधा होती है।
- इवेंट सुनने के लिए आप क्लाइंट-साइड
EventSourceAPI का उपयोग करते हैं। - SSE लाइव डैशबोर्ड, समाचार फ़ीड और रीयल-टाइम सूचनाओं के लिए बिल्कुल उपयुक्त है।
यह जानना जारी रखें कि ये लाइव डेटा संरचनाएँ आपके अनुप्रयोगों को कैसे बेहतर बना सकती हैं!
एआई शिक्षक के साथ रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “एकदिशीय पुश के लिए Server-Sent Events (SSE)” पाठ निःशुल्क है?
हाँ—“एकदिशीय पुश के लिए Server-Sent Events (SSE)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“एकदिशीय पुश के लिए Server-Sent Events (SSE)” में मैं क्या सीखूँगा?
Server-Sent Events (SSE) को WebSockets के सरल विकल्प के रूप में जानें, जो सर्वर से क्लाइंट तक एकदिशीय डेटा अपडेट भेजने के लिए उपयोगी है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“एकदिशीय पुश के लिए Server-Sent Events (SSE)” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर रियल-टाइम स्ट्रीमिंग प्रणालियाँ (WebRTC + लाइव डेटा) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- रीयल-टाइम डेटा बनाम पारंपरिक HTTP
- द्विदिशीय प्रवाह के लिए WebSockets
- एकदिशीय पुश के लिए Server-Sent Events (SSE)
- लॉन्ग पोलिंग और स्ट्रीमिंग की ओर विकास