वेबसॉकेट में दक्षता उन वेबसर्वर के कार्यान्वयन और वास्तुकला पर निर्भर करती है जो उन्हें संभालती हैं। वेबसॉकेट केवल 2 बाइट (!) ओवरहेड के साथ एक बहुत ही कुशल प्रोटोकॉल है, सभी अजाक्स अनुरोध में भेजे गए सभी अलग-अलग HTTP header fields और HTTP cookies की तुलना करें।
आमतौर पर websockets के लिए एक कुशल वेबसर्वर ईवेंट संचालित होना चाहिए (नीचे दिए गए उदाहरण देखें)। इसके विपरीत, वेब सर्वर को लागू करने का पारंपरिक तरीका प्रति अनुरोध एक नया धागा उत्पन्न करना है। लेकिन धागे बहुत मेमोरी आवंटित करते हैं उदा। प्रति थ्रेड 256 एमबी। इसलिए यदि आपके सर्वर पर 1 जीबी मेमोरी है तो आप समसामयिक रूप से कई अनुरोधों को संभाल नहीं सकते हैं। लेकिन यदि आपका सर्वर इवेंट-संचालित है तो आपका मेमोरी उपयोग लगभग स्थिर रहेगा, क्योंकि नए धागे नहीं बनाए जाते हैं। यह भी देखें Technically why is processes in Erlang more efficient than OS threads?
आप अपने वेबसाकेट में कोई भी डेटा भेज सकते हैं। यदि ग्राहक एक वेब ब्राउज़र है, या शायद typed arrays है तो JSON कुशल है। यदि आपका ग्राहक एक कस्टम एप्लिकेशन है, तो आप Protocol Buffers का उपयोग कर सकते हैं। यह भी देखें Google Wave Client-Server Protocol Whitepaper
आप Twisted (पायथन) या Netty (जावा) का उपयोग कर कुशल वेबसाइकिल सर्वर लागू कर सकते हैं। Play Framework नेटी पर लागू जावा और स्कैला के लिए एक कुशल वेब ढांचा है। एक और कुशल विकल्प Yaws वेब सर्वर (Erlang) या Node.js + Socket.io (जावास्क्रिप्ट) है।
एक एप्लिकेशन डेवलपर के रूप में, कम डेटा जो आप अधिक कुशल (कम यातायात) भेजते हैं और आपके सर्वर पर कम लोड भेजते हैं।
दरअसल मुझे लगता है कि मेजबान उन पिल्ले को लाइन में रखने के लिए बहुत अच्छा प्रदर्शन करेगा, या आईएसपी होगा। – jcolebrand
शायद, लेकिन थोड़ा अनुकूलन चोट नहीं पहुंचा सकता है, खासकर उन अनुप्रयोगों में जहां नेटवर्क विलंबता एक बड़ा कारक है। – Alexander
तो आप websockets के लिए क्यूओएस चाहते हैं ... या वास्तव में क्या? उनमें से एक वैश्विक अधिकतम? क्या आप यहां क्लाइंट या सर्वर के बारे में चिंतित हैं? – jcolebrand