2015-10-26 6 views
6

तक पहुंचने के बाद ग्राहक डिस्कनेक्ट हो रहे हैं। सॉकेट.ओ कनेक्शन सीमा के साथ मुझे बड़ी समस्या है। यदि कनेक्शन की संख्या 400-450 कनेक्टेड क्लाइंट (ब्राउज़र द्वारा) उपयोगकर्ताओं से डिस्कनेक्ट हो रही है। मैंने टीसीपी के लिए मुलायम और कठोर सीमाएं बढ़ा दी लेकिन इससे मेरी मदद नहीं हुई। समस्या केवल ब्राउज़र के लिए है। जब मैंने सॉकेट-आईओ-क्लाइंट मॉड्यूल से अन्य node.js सर्वर से कनेक्ट करने का प्रयास किया तो मैं 5000 कनेक्टेड क्लाइंट पर पहुंच गया। मेरे लिए यह बहुत बड़ी समस्या है और मुझे पूरी तरह अवरुद्ध कर दिया गया है। कृपया मदद करे।वेबसाइटसेट (node.js) कनेक्शन सीमा, 400-450 कनेक्शन

अद्यतन

मैं मानक WebSocket पुस्तकालय (Node.js साथ ws मॉड्यूल) और समस्या के साथ की कोशिश की है समान था। मैं केवल 456 जुड़े ग्राहकों तक पहुंच सकता हूं।

अद्यतन 2

मैं सर्वर कुछ उदाहरणों के बीच जुड़ा ग्राहकों विभाजित। ग्राहकों के हर समूह को अन्य बंदरगाह से जोड़ रहे थे। दुर्भाग्यवश इस बदलाव ने मेरी मदद नहीं की। जुड़े उपयोगकर्ताओं का योग पहले की तरह ही था।

+0

मुझे एक साथ कनेक्शन के साथ socket.io के साथ स्मृति समस्याएं थीं। जांचें कि क्या आपको एक ही समस्या है? – bluesman

+0

आपके पास किस तरह की समस्याएं थीं? क्या आपने उन्हें हल किया? सॉकेट.io का मेरा संस्करण 1.3.6 है लेकिन नवीनतम संस्करण 1.3.7 भी यह समस्या –

+0

मेमोरी जारी नहीं की जा रही थी। मैं बहुत सारे कमरे का उपयोग कर रहा था और किसी कारण से यह न तो स्मृति का प्रबंधन था और न ही असफल रहा। बहुत सारे स्वैपिंग को देख रहा था। – bluesman

उत्तर

1

आप अपने ऑपरेटिंग सिस्टम में एक सीमा मार रहे हैं। समवर्ती फ़ाइलों की संख्या में सुरक्षा सीमाएं खुली हैं, इस धागे को देखें।

https://github.com/socketio/socket.io/issues/1393

अद्यतन: मैं क्योंकि मैं मोबाइल से पहले जवाब देने गया था इस उत्तर का विस्तार करना चाहता था। स्थापित होने वाला प्रत्येक नया कनेक्शन आपके नोड प्रक्रिया के तहत एक नई फ़ाइल डिस्क्रिप्टर खोलने जा रहा है। बेशक, प्रत्येक कनेक्शन रैम के कुछ हिस्से का उपयोग करने जा रहा है। रैम से बाहर होने से पहले आप सबसे पहले एफडी सीमा में भाग लेंगे (लेकिन यह आपके सर्वर पर निर्भर करता है)।

अपने एफडी सीमा की जाँच करें: https://rtcamp.com/tutorials/linux/increase-open-files-limit/

और अंत में, मैं अपने एकल ग्राहक संगामिति सही झंडे का इस्तेमाल नहीं किया गया था नए कनेक्शन के लिए मजबूर करने पर शक। आप एक ग्राहक से समवर्ती कनेक्शन का परीक्षण करना चाहते हैं, तो आप वेबसर्वर पर एक झंडा स्थापित करने की आवश्यकता:

वर सॉकेट = io.connect ('http://localhost:3000', { 'नए कनेक्शन के लिए मजबूर': सच});

+0

मेरे पास यह सीमा है और समस्या अभी भी मौजूद है। * मुलायम nofile 10240 * कठिन nofile 20480 जड़ नरम nofile nofile 81920 www-डेटा नरम nofile 20480 www-डेटा कठिन nofile 40960 जड़ कठिन 20480 बेशक मुझे इस्तेमाल किया "{ 'नए कनेक्शन के लिए मजबूर' के : सच } "विशेषता। केवल तभी मैं कई कनेक्शनों का परीक्षण कर सकता हूं। –

+0

हार्डवेयर चश्मा क्या है? –

+0

मेरे पास कोर i7 2c4t, 4 जीबी रैम, 100 जीबी एसएसडी है। कनेक्शन खोने में समस्या अन्य मशीन पर होती है जहां इंटेल 8 सी और 32 जीबी रैम (उत्पादन) है।सर्वर अधिकतम 500-800 कनेक्टेड उपयोगकर्ताओं तक पहुंच सकता है। क्या किसी के पास 1000 से अधिक कनेक्टेड क्लाइंट से अधिक यातायात के साथ अनुभव है? मैंने सिमुलेशन देखा जहां किसी ने हजारों कनेक्शन हासिल किए लेकिन मुझे विश्वास नहीं है कि यह स्थिर था। –

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