2015-09-21 9 views
13

का उपयोग करते समय क्रोम की 6 कनेक्शन सीमा को हल करने के लिए कैसे हाल ही में पता चला कि क्रोम की कनेक्शन सीमा 6 (Chrome hangs after certain amount of data transfered - waiting for available socket) है, दुर्भाग्यवश मुझे "उपलब्ध सॉकेट के लिए प्रतीक्षा" संदेश प्राप्त करने का कठिन तरीका मिला बहुत सारे टैब लोड करना (7)।xhr मतदान

मुझे पता है कि यह क्रोम है क्योंकि एक और क्रोम उपयोगकर्ता (ए.के.ए. एक और ब्राउज़र सत्र) उसी पृष्ठ पर एक ही कंप्यूटर पर पूरी तरह से ठीक वेब पेज लोड करता है (मेरे कंप्यूटर पर एकाधिक क्रोम उपयोगकर्ता खुले हैं)। तो यह किसी भी तरह से सर्वर नहीं है।

मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि, socket.io (जो मैं अधिसूचनाओं के लिए उपयोग कर रहा हूं) में, मैं xhr-polling हूं जो क्रोम को तब तक इंतजार कर रहा है जब तक कि वह उन कनेक्शनों में से किसी एक से सॉकेट नहीं ले सकता पेज को संसाधित करें।

इसका समाधान क्या है?

मैं समाधान की एक जोड़ी के बारे में सोचा है

  • XHR-मतदान खिड़की छोटे, इस ब्राउज़र और Node.js में कनेक्शन बढ़ जाती है लेकिन इसका मतलब यह पेज रोकने नहीं होगा होगा।
  • websockets का उपयोग करें। मुझे यकीन नहीं है कि क्या वेबसाइकिल इस समस्या से प्रतिरक्षा हैं।
  • ध्यान केंद्रित न किए गए टैब पर निष्क्रिय कनेक्शन बनाएं। हालांकि ऐसा लगता है कि अन्य साइटों को ऐसा करने की ज़रूरत नहीं है ...
  • किसी प्रकार के कनेक्शन साझाकरण का उपयोग करें। यह ध्यान में रखते हुए कि क्रोम वेब पर websockets और xhr अनुरोधों को अलग करता है, मुझे यह समझना मुश्किल लगता है कि यह कैसे काम करता है।

एक अतिरिक्त बिंदु के रूप में: कारण से मैं websockets के साथ नहीं गया कारण है क्योंकि मैं क्लाउडफ्लेयर का उपयोग करता हूं। लेकिन अगर इसे हल करने का यह तरीका है तो: तो हो।

+0

एक्सएचआर मतदान के बजाए एक वास्तविक वेबसाकेट का उपयोग करें। वेबसॉकेट कनेक्शन एक ही उत्पत्ति के लिए http कनेक्शन सीमा की ओर गिनती नहीं करते हैं। – jfriend00

+0

@ jfriend00 आह, धन्यवाद! – Sammaye

+1

एक संदर्भ संदर्भ लेख: [ब्राउज़र में अधिकतम समानांतर http कनेक्शन?] (Http://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser) और [अधिकतम समवर्ती कनेक्शन ब्राउज़र के लिए एक ही डोमेन] (http://sgdev-blog.blogspot.com/2014/01/maximum-concurrent-connection-to-same.html) और [प्रति होस्ट सीमा के साथ HTTP एक साथ कनेक्शन ... प्रति टैब, ब्राउज़र उदाहरण या वैश्विक?] (http://stackoverflow.com/questions/22866552/http-simultaneous-connections-per-host-limit-are-per-tab-browser-instance-or)। – jfriend00

उत्तर

10

एक्सएचआर मतदान के बजाए एक असली वेबसाकेट का उपयोग करें। वेबसॉकेट कनेक्शन एक ही उत्पत्ति के लिए http कनेक्शन सीमा की ओर गिनती नहीं करते हैं।

कितने वेबसॉकेट कनेक्शन बनाए जा सकते हैं, इसकी एक अलग वैश्विक सीमा है, लेकिन यह एक उच्च संख्या है (फ़ायरफ़ॉक्स में 200 - यह सुनिश्चित नहीं है कि यह वास्तव में क्रोम में क्या है)।

+0

अनुरोध को रूट कर सकता है, अंत में ऐसा करने का निर्णय लिया, बस एक SSL'd डोमेन बनाया क्लाउडफ्लेयर के बाहर और नरक कहने का फैसला करें। मैं कुछ क्लाउडफ्लर सुरक्षा खो देता हूं लेकिन मेह यह डोमेन एक ही चीज़ परोसता है – Sammaye

+0

क्लाउडफ्लारे में अब वेबसाइकिल हैं। क्या आप इसे स्विच करने की हर कोशिश करते थे? –

+0

@Simon_Weaver क्षमा करें, केवल आपकी टिप्पणी देखी गई है। मुझे लगता है कि डब्ल्यूएस उनकी एंटरप्राइज़ योजना के लिए है इसलिए मेरे पास अभी तक – Sammaye

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