जवाबों:
अद्यतन उत्तर
संक्षिप्त उत्तर : हाँ, लेकिन यह महंगा है।
लंबे उत्तर :
यह सवाल WebSockets के लिए अद्वितीय नहीं है क्योंकि WebSockets मौलिक रूप से लंबे समय तक रहने वाले TCP सॉकेट हैं जिनमें HTTP-जैसे हैंडशेक और संदेशों के लिए न्यूनतम फ़्रेमिंग है।
असली सवाल यह है: क्या एक एकल सर्वर 1,000,000 एक साथ सॉकेट कनेक्शन को संभाल सकता है और यह किस सर्वर संसाधनों का उपभोग करेगा? उत्तर कई कारकों से जटिल है, लेकिन ठीक आकार प्रणाली (सीपीयू, रैम और फास्ट नेटवर्किंग के बहुत सारे) और एक ट्यून्ड सर्वर सिस्टम और अनुकूलित सर्वर सॉफ़्टवेयर के साथ 1,000,000 एक साथ सक्रिय सॉकेट कनेक्शन संभव है।
कनेक्शन की संख्या प्राथमिक समस्या नहीं है (यह ज्यादातर केवल कर्नेल ट्यूनिंग और पर्याप्त मेमोरी का सवाल है), यह उन सभी कनेक्शनों से / में डेटा को संसाधित करना और भेजना / प्राप्त करना है। यदि आने वाले कनेक्शन लंबी अवधि में फैले हुए हैं, और वे ज्यादातर बेकार हैं या स्थिर डेटा के छोटे हिस्से भेज रहे हैं तो आप शायद 1,000,000 से भी अधिक एक साथ कनेक्शन प्राप्त कर सकते हैं। हालाँकि, यहां तक कि उन परिस्थितियों में (धीमे कनेक्शन जो अधिकतर निष्क्रिय हैं) आप अभी भी नेटवर्क, सर्वर सिस्टम और सर्वर लाइब्रेरी के साथ समस्याओं में चलेंगे जो बड़ी संख्या में कनेक्शन को संभालने के लिए कॉन्फ़िगर और डिज़ाइन नहीं किए गए हैं।
500,000 कनेक्शन के लिए अनुमानित संसाधन उपयोग के बारे में एलेसेंड्रो एलिनोन का उत्तर देखें।
यहां कुछ पुराने लेकिन अभी भी लागू संसाधन पढ़ने के लिए हैं कि आप अपने सर्वर को कैसे कॉन्फ़िगर करेंगे और बड़ी संख्या में कनेक्शन का समर्थन करने के लिए अपना सर्वर सॉफ्टवेयर लिखेंगे:
आज के सिस्टम पर, 1 मिलियन समवर्ती टीसीपी कनेक्शन को संभालना कोई समस्या नहीं है।
मैं अपने स्वयं के परीक्षणों (पूर्ण प्रकटीकरण: मैं लाइटस्ट्रीमर में सीटीओ हूं) के आधार पर पुष्टि कर सकता हूं।
हमें अपने कुछ ग्राहकों को कई बार प्रदर्शित करना पड़ा, कि 1 मिलियन कनेक्शन एक बॉक्स पर पहुंच सकते हैं (और जरूरी नहीं कि यह एक सुपर-मॉन्स्टर मशीन हो)। लेकिन मुझे कॉन्फ़िगरेशन को फिर से सेट करना है जहां हमने 500K समवर्ती कनेक्शन का परीक्षण किया है, क्योंकि यह अमेज़ॅन ईसी 2 पर हाल ही में किया गया अधिक परीक्षण है।
हमने लाइटस्ट्रीमर सर्वर (जो अन्य बातों के अलावा एक वेबसर्केट सर्वर है) को एक एम 2.4xlarge उदाहरण पर स्थापित किया है। इसका मतलब 8 कोर और 68.4 GiB मेमोरी है।
हमने लाइटस्ट्रीमर सर्वर से 500,000 समवर्ती कनेक्शन बनाने के लिए 11 क्लाइंट मशीनें लॉन्च कीं। परीक्षण को कॉन्फ़िगर किया गया था ताकि सर्वर से कुल आउटबाउंड थ्रूपुट 90,000 अपडेट / एस था, जिसके परिणामस्वरूप 450 Mbit / s आउटबाउंड बैंडविड्थ की चोटियां थीं।
सर्वर ने कभी भी 13 GB से अधिक RAM का उपयोग नहीं किया और CPU लगभग 60% स्थिर था।
कम से कम 30 GiB RAM के साथ आप 1 मिलियन समवर्ती कुर्सियां संभाल सकते हैं। सीपीयू की जरूरत उस डेटा थ्रूपूट पर निर्भर करती है जिसकी आपको जरूरत है।