HTML में SSE
In this page:
const source = new EventSource("url");
source.onmessage = (event) => { /* event.data */ };
Server-Sent Events क्या हैं?
Server-Sent Events (SSE) एक वेबपेज को सर्वर से अपने-आप पुश होने वाले रीयल-टाइम अपडेट्स पाने देते हैं। यह एक स्टैंडर्ड, एक-तरफ़ा HTTP कनेक्शन का उपयोग करता है, जिससे यह पुश किए गए अपडेट्स के लिए WebSockets की तुलना में सरल और ज़्यादा कारगर बन जाता है।
उदाहरण: What are Server-Sent Events?
<script>
const source = new EventSource('/updates');
</script>
EventSource से कनेक्ट करना
Server-Sent Events पाना शुरू करने के लिए, आप अपनी स्क्रिप्ट के अंदर एक नया EventSource ऑब्जेक्ट इनिशियलाइज़ करते हैं, जो उस सर्वर फाइल की ओर पॉइंट करता है जो अपडेट्स स्ट्रीम करती है।
उदाहरण: Connecting with EventSource
<script>
const source = new EventSource('/stream.php');
</script>
Message Events सुनना
एक बार आपका कनेक्शन एक्टिव हो जाने पर, आप pushed अपडेट्स सुनने के लिए onmessage इवेंट का उपयोग करते हैं, जो सर्वर से भेजा गया डेटा कैप्चर करता है और आपको अपने वेबपेज कंटेंट को रीयल-टाइम में अपडेट करने देता है।
उदाहरण: Listening for Message Events
<script>
const source = new EventSource('/stream.php');
source.onmessage = function (event) {
console.log(event.data);
};
</script>
Auto-Reconnection व्यवहार
अगर आपका नेटवर्क डिस्कनेक्ट हो जाता है या आपका कनेक्शन बीच में टूट जाता है, तो ब्राउज़र का EventSource ऑब्जेक्ट बैकग्राउंड में अपने-आप सर्वर से दोबारा कनेक्ट करने की कोशिश करता है, जिससे मैनुअल स्क्रिप्ट्स की ज़रूरत के बिना आपका कनेक्शन स्थिर बना रहता है।
उदाहरण: Auto-Reconnection Behaviors
<script>
const source = new EventSource('/stream.php');
source.onerror = function () {
console.log('Connection lost, browser will retry automatically');
};
</script>
सर्वर स्ट्रीम फॉर्मैटिंग
किसी वेबपेज पर इवेंट्स स्ट्रीम करने के लिए, आपकी सर्वर फाइल को एक खास Content-Type हेडर ('text/event-stream') भेजना होगा और अपने डेटा आउटपुट को 'data:' प्रीफिक्स के बाद डबल न्यूलाइन्स वाले सख्त स्ट्रक्चर में फॉर्मैट करना होगा।
उदाहरण: Server Stream Formatting
<!-- Server response headers: Content-Type: text/event-stream -->
<!-- Server response body: data: Hello\n\n -->
<script>
const source = new EventSource('/stream.php');
</script>
- अपने server से ज़रूरी 'text/event-stream' Content-Type header भेजना भूल जाना, जिससे connections fail हो जाते हैं।
- दो-तरफा communication के लिए SSE इस्तेमाल करने की कोशिश करना जब असल में WebSockets चाहिए हों।
- अपने server data outputs में double newline sequences छोड़ देना, जिससे browser updates parse नहीं कर पाता।
- Server-Sent Events (SSE) servers को सीधे webpages पर real-time updates push करने देते हैं।
- अपने scripts के अंदर EventSource object इस्तेमाल करके connections शुरू करें, और onmessage से updates सुनें।
- Browsers connection drops और auto-reconnection को natively handle करते हैं, जिसमें कोई custom fallback scripts नहीं चाहिए।
standard Server-Sent Events सभी modern web browsers द्वारा natively supported हैं।
Chapter Quiz — Complete all 11 topics to unlock
0/11 topics done
Complete these topics first: