2012-01-06 11 views
5

मैं उपयोगकर्ताओं को डेटा को हर 2 मिनट में धक्का देना चाहता हूं। इवेंटसोर्स का उपयोग कनेक्शन को खोलने के लिए हर 2 9 सेकेंड में अतिरिक्त पुशिंग नल-बाइट की आवश्यकता होती है। वेबसॉकेट को ऐसे पिंग की आवश्यकता नहीं है। इवेंटसोर्स कनेक्शन नियमित रूप से बंद क्यों किया जाता है और फिर से खोला जाता है? क्या ऐसा इसलिए है क्योंकि कनेक्शन में अभी भी खुला है या अन्य कारण जांचने के लिए HTTP में कोई अच्छा अंतर्निहित तरीका नहीं है?जब कोई डेटा ट्रांसपोर्ट नहीं किया जाता है, तो इवेंटसोर्स कनेक्शन हर 30-60 सेकेंड बंद क्यों होता है, जबकि वेबसॉकेट का एक खुला रहता है?

उत्तर

7

सर्वर द्वारा भेजे गए ईवेंट (Eventsource) API को HTTP पर स्तरित किया गया है। वेबसाकेट टीसीपी पर स्तरित है (लेकिन एक HTTP संगत हैंडशेक है)। हालांकि HTTP और टीसीपी दोनों में निष्क्रिय टाइमआउट होते हैं, हालांकि, टीसीपी टाइमआउट बहुत अधिक होते हैं (उदाहरण के लिए 2 मिनट के बजाय 2 घंटे)। तो आपको अभी भी वेबसाकेट में रहने वाले संदेशों की आवश्यकता हो सकती है, लेकिन वे शायद बहुत कम हो सकती हैं। इसके अलावा, WebSocket standard पिंग/पोंग फ्रेम को परिभाषित करता है जो ब्राउज़र/सर्वर आपके लिए ऐसा करने के लिए कार्यान्वित कर सकता है।

संबंधित मुद्दे

 संबंधित मुद्दे