प्रकटीकरण - मैं कैप्लिन के लिए काम करता हूं।
इस पृष्ठ पर गलत सूचना का एक सा तो मैं कोशिश करते हैं और यह स्पष्ट करने ..
मुझे लगता है कि हम तीन शिविरों में तरीकों के बारे में हम बात कर रहे हैं अलग कर सकता है करना चाहते हैं ..
- धूमकेतु HTTP मतदान - लंबी मतदान सहित
- धूमकेतु HTTP स्ट्रीमिंग - ग्राहक संदेशों के लिए सर्वर प्रारंभिक सेटअप
- धूमकेतु WebSocket के बाद कोई HTTP हेडर भूमि के ऊपर के साथ एक एकल लगातार सॉकेट का उपयोग करें - एक द्विदिश सॉकेट
मैं, धूमकेतु के रूप में उन सभी को देखने के बाद से धूमकेतु सिर्फ एक प्रतिमान है, लेकिन जब से WebSocket कुछ लोगों को साथ आया था जैसे कि यह अलग है या बदल देता धूमकेतु यह इलाज के लिए चाहते हैं - लेकिन यह सिर्फ एक और तकनीक है - और जब तक आप कर रहे हैं केवल नवीनतम ब्राउज़रों का समर्थन करने में खुशी है तो आप केवल वेबसॉकेट पर भरोसा नहीं कर सकते हैं।
जहां तक प्रदर्शन का संबंध है, अधिकांश मानक सर्वर पर क्लाइंट संदेशों पर ध्यान केंद्रित करते हैं - उपयोगकर्ताओं की संख्या, प्रति सेकंड संदेशों की संख्या, और उन संदेशों की विलम्ब। इस परिदृश्य के लिए HTTP स्ट्रीमिंग और वेबसॉकेट के बीच कोई मौलिक अंतर नहीं है - दोनों खुले सॉकेट के नीचे संदेश लिख रहे हैं जिनमें बहुत कम या कोई हेडर या ओवरहेड नहीं है।
संदेश की आवृत्ति कम होने पर लंबी मतदान अच्छी विलंबता दे सकती है। हालांकि, यदि आपके पास त्वरित उत्तराधिकार में दो संदेश (क्लाइंट के लिए सर्वर) हैं तो दूसरा संदेश क्लाइंट पर तब तक नहीं पहुंच जाएगा जब तक कि पहला संदेश प्राप्त होने के बाद कोई नया अनुरोध नहीं किया जाता है।
मुझे लगता है कि किसी ने HTTP KeepAlive पर स्पर्श किया है। यह स्पष्ट रूप से लंबे मतदान में सुधार कर सकता है - आपके पास अभी भी राउंडट्रिप और हेडर का ओवरहेड है, लेकिन हमेशा सॉकेट निर्माण नहीं होता है।
जहां वेबस्केट को उन परिदृश्यों में HTTP स्ट्रीमिंग पर सुधार करना चाहिए जहां सर्वर संदेशों के लिए अधिक क्लाइंट हैं। इन परिदृश्यों को वास्तविक दुनिया में जोड़ने से सरलता की तुलना में थोड़ा अधिक मनमाने ढंग से सेटअप होते हैं, 'बहुत से ग्राहकों को बहुत सारे संदेश भेजते हैं' जिन्हें हर कोई समझ सकता है। उदाहरण के लिए, एक व्यापारिक अनुप्रयोग में, एक परिदृश्य बनाते हैं जहां आप ट्रेडों को निष्पादित करने वाले उपयोगकर्ता (यानी सर्वर संदेशों के लिए क्लाइंट) शामिल करते हैं, लेकिन परिणाम क्लाइंट परिदृश्यों के मूल सर्वर से थोड़ा कम सार्थक होते हैं। व्यापारी 100 ट्रेड/सेकेंड करने की कोशिश नहीं कर रहे हैं - इसलिए आप '10000 उपयोगकर्ताओं को 100 संदेश/सेकंड प्राप्त करते समय' हर 5 मिनट में क्लाइंट संदेश भेजते समय परिणाम के साथ समाप्त होते हैं। ' क्लाइंट के लिए सर्वर संदेश के लिए अधिक दिलचस्प हिस्सा विलंबता है, क्योंकि आवश्यक संदेशों की संख्या आमतौर पर सर्वर से क्लाइंट संदेशों की तुलना में महत्वहीन होती है।
64k क्लाइंट्स के ऊपर बनाए गए किसी अन्य बिंदु पर, आपको सर्वर पर 64k सॉकेट से अधिक का समर्थन करने के लिए कुछ भी चालाक करने की आवश्यकता नहीं है - संख्या फ़ाइल वर्णनकर्ताओं को कॉन्फ़िगर करने के अलावा अन्य। यदि आप 64k कनेक्शन करने का प्रयास कर रहे थे एक सिंगल क्लाइंट मशीन, जो पूरी तरह से अलग होती है क्योंकि उन्हें प्रत्येक के लिए पोर्ट नंबर की आवश्यकता होती है - सर्वर के अंत में यह ठीक है, यह सुनना अंत है, और आप 64k सॉकेट से ऊपर जा सकते हैं।
आपका कैप्लिन लिंक टूटा हुआ है। – kanaka
'एचटीएमएल 5 वेबसाइकिल बनाम धूमकेतु' पर एक टिप्पणी: जैसा कि कैप्लिन के लिबरेटर के नीचे अन्य टिप्पणियों में बताया गया है, कई अन्य 'धूमकेतु' सर्वरों के साथ, वेबसाकेट को कनेक्शन तंत्र के रूप में समर्थन देता है। सर्वर कब धूमकेतु सर्वर बनता है? यदि यह वेबसाकेट्स का उपयोग करता है तो यह अभी भी एक धूमकेतु सर्वर है? क्या धूमकेतु HTTP-Long मतदान और HTTP स्ट्रीमिंग के लिए छतरी शब्द है? मैं पढ़ने की सिफारिश करता हूं [धूमकेतु की मौत की अफवाहें बेहद अतिरंजित हो गई हैं] (http://blog.caplin.com/2009/12/17/the-rumours-of-comets-death-have-been-greatly-exaggerated /)। – leggetter
मैं इसे अभी के लिए एक टिप्पणी के रूप में रखने जा रहा हूँ। लेकिन आपको वास्तव में एक विकल्प के रूप में EventSource (उर्फ सर्वर-प्रेषित घटनाक्रम) पर विचार करना चाहिए। यह कई सर्वरों को स्केलिंग बहुत आसान बनाता है क्योंकि यह यूनिडायरेक्शनल (केवल पुश-केवल) है। – igorw