𝗨𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗲𝗿 𝗦𝗲𝗻𝘁 𝗘𝘃𝗲𝗻𝘁𝘀
कल्पना कीजिए कि आप ChatGPT का उपयोग कर रहे हैं। आप एक प्रश्न पूछते हैं। शब्दों को एक-एक करके आते हुए देखने के बजाय, आप पूरे उत्तर के एक साथ आने के लिए 5 सेकंड प्रतीक्षा करते हैं।
यह देरी धीमी महसूस होती है। यह निराशाजनक लगता है।
इसे ठीक करने के लिए, डेवलपर्स स्ट्रीमिंग रिस्पॉन्स (streaming responses) का उपयोग करते हैं। इससे अनुभव तेज़ महसूस होता है।
Server Sent Events (SSE) इसे संभव बनाते हैं।
SSE क्या है? SSE, HTTP के माध्यम से सर्वर से क्लाइंट तक डेटा स्ट्रीम करने का एक मानक (standard) है। यह सर्वर को आपको रीयल-टाइम में अपडेट भेजने (push करने) की अनुमति देता है।
यह कैसे काम करता है:
सर्वर छोटे टेक्स्ट ब्लॉक्स भेजता है। ये ब्लॉक्स data, event, id, और retry जैसे फ़ील्ड्स का उपयोग करते हैं। प्रत्येक ब्लॉक एक खाली लाइन (blank line) द्वारा अलग किया जाता है।
उदाहरण: data: {"name": "Portal Gun", "price": 999.99}
SSE के सामान्य उपयोग:
- AI चैट स्ट्रीमिंग
- लाइव नोटिफिकेशन
- रीयल-टाइम लॉग्स
- सिस्टम ऑब्जर्वेबिलिटी (System observability)
SSE से पहले, डेवलपर्स अपडेट प्राप्त करने के लिए दो मुख्य तरीकों का उपयोग करते थे:
शॉर्ट पोलिंग (Short polling) क्लाइंट सर्वर से डेटा मांगता है। यदि डेटा तैयार नहीं है, तो सर्वर एक 'वेट मैसेज' (wait message) भेजता है। क्लाइंट प्रतीक्षा करता है और फिर से पूछता है। काम पूरा होने तक यह प्रक्रिया दोहराई जाती है।
लॉन्ग पोलिंग (Long polling) क्लाइंट सर्वर से डेटा मांगता है। सर्वर अनुरोध (request) को तब तक खुला रखता है जब तक डेटा तैयार न हो जाए या टाइमआउट न हो जाए। रिस्पॉन्स प्राप्त करने के तुरंत बाद क्लाइंट को अनुरोध फिर से शुरू करना पड़ता है।
इवेंट स्ट्रीम्स निरंतर चलने वाली प्रक्रियाओं (continuous processes) को संभालते हैं। ये प्रक्रियाएं एक विशिष्ट क्रम का पालन करती हैं। इसमें PDF बनाने जैसे सरल कार्य या बैंक ट्रांजेक्शन जैसे जटिल कार्य शामिल हैं।
सर्वर क्लाइंट के साथ एक संचार चैनल (communication channel) खोलता है। यह प्रक्रिया समाप्त होने तक इस चैनल को खुला रखता है।
Source: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd