2012-06-01 16 views
8

मैं एक ओएस एक्स ऐप में किसी समस्या के लिए दौड़ रहा हूं जो NSURLConnection का उपयोग कर एक ही मेजबान के लिए एकाधिक, लगातार कनेक्शन बनाता है। मैं अलग-अलग कमरे के लिए एक अलग कनेक्शन बनाता हूं, और स्ट्रीमिंग एपीआई का उपभोग करने के लिए कमरे खुले होने पर पूरे समय जुड़े रहता है। कई कमरे खोलते समय, यह सही तरीके से काम करना बंद कर देता है।समान होस्ट में समवर्ती NSURLConnections की अधिकतम संख्या?

मैंने एक अलग नमूना ऐप बनाया जो 10 कनेक्शन बनाता है, और ऐसा लगता है कि केवल 6 कनेक्शन काम करने की अनुमति देते हैं, और अन्य कतारबद्ध हैं। क्या किसी को पता है कि इस सीमा को ओवरराइड करने का कोई तरीका है? मैं इसे कहीं भी दस्तावेज नहीं ढूंढ सकता। मुझे लगता है कि एकमात्र कामकाज यह प्रति मेजबान नाम प्रतीत होता है, इसलिए "localhost" और "127.0.0.1" के साथ परीक्षण प्रति होस्ट 6 कनेक्शन की अनुमति देता है। मैंने यहां क्लाइंट और सर्वर के साथ नमूना प्रोजेक्ट अपलोड किया - http://cl.ly/1x3K0D1F072V3U2T0C0I

+0

आईओएस या ओएसएक्स मंच? –

+0

क्षमा करें, इसका उल्लेख होना चाहिए था, यह ओएस एक्स पर है। अद्यतन प्रश्न। –

+0

@Zach Waugh मैं आपका कोड देख रहा हूं :) क्या आप वाकई अपने सर्वर.जेएस के साथ कुछ नहीं कर रहे हैं? (नोड) मैंने आपका server.js चलाया लेकिन मुझे अधिकतम 6 कनेक्शन भी मिल रहे हैं। – self

उत्तर

5

मैंने एक ऐसे मुद्दे के लिए रडार दायर किया जो एक ही मुद्दे की तरह लगता है लेकिन आईओएस पर। मैंने पाया कि आपके पास एक बार में 5 से अधिक कनेक्शन नहीं खुल सकते हैं। कनेक्शन को एक ही डोमेन पर इंगित करने की आवश्यकता नहीं है। इसके बाद कुछ भी कतारबद्ध होगा। तो यदि आपके पास 5 कनेक्शन बेहद धीमी एंडपॉइंट के लिए खुले हैं, तो कोई अन्य कनेक्शन नहीं जायेगा।

रडार: http://openradar.appspot.com/radar?id=2542401

एप्पल जबाब:

यह हमारे NSURLConnection कनेक्शन कैश का प्रभाव है। आशा की जाती है। हम इस प्रकार की कॉन्फ़िगरेशन को नए एपीआई के साथ संबोधित करने की उम्मीद करते हैं।

मैंने पूछा कि वे मुझे अब और जानकारी दे सकता है अगर और उन्होंने कहा कि (यह बदलती है कनेक्शन का प्रकार यह प्रभावित करता है??):

दुर्भाग्य से, हम कनेक्शन के विवरण नहीं दे सकता व्यवहार सीमित करें।

सामान्य रूप से उपयोगकर्ता एजेंट (क्रोम, फ़ायरफ़ॉक्स, सफारी) संभावित एक-ऑफ के साथ प्रति होस्टनाम के साथ एक साथ टीसीपी कनेक्शन का उपयोग करते हैं।

0

आप CFNetwork API (CFHTTPMessage) का उपयोग करके इस सीमा को तोड़ सकते हैं।

यहां सीएफनेटवर्क प्रोग्रामिंग गाइड है। https://developer.apple.com/library/mac/documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001132

बीटीडब्ल्यू, यदि आप सीएफनेटवर्क का उपयोग करने का निर्णय लेते हैं, तो आपको प्रॉक्सी और प्रमाणीकरण के आसपास काम करने की आवश्यकता होगी।

इच्छा है कि इससे मदद मिल सके!

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