2013-02-06 66 views
12

वर्तमान में हमने अपने ऐप में एक प्रदर्शन के मुद्दों से निपटने रहे हैं, और हमें विश्वास है कि इन मुद्दों में से कुछ तथ्य से संबंधित हो सकता है कि अनुप्रयोग और अंतर्निहित AFNetworking नेटवर्क स्टैक करने लगता है पता चलता HTTP 1.1 पर जीवित रहने की अनदेखी करें।AFNetworking/NSURLConnection HTTPS को जीवित रखने के अजीब व्यवहार

हमें ऐप्पल से जानकारी मिली है कि आईओएस संस्करण और वाईफाई/डब्ल्यूडब्ल्यूएएन कनेक्टिविटी के आधार पर लगातार कनेक्शन 3, 6 या 30 सेकंड के बाद शुद्ध हो जाते हैं, भले ही सर्वर-साइड रखें-जीवित जानकारी के बावजूद।

हमारे सर्वर पर कनेक्शन हैंडशेक की निगरानी करते हैं, हम अजीब व्यवहार है कि किसी iOS उपकरण पर हमारे app से एक SSL कनेक्शन खुला छोड़ दिया जाता है और एक फिन पैकेट के साथ बंद नहीं उल्लेख किया। जैसे ही ऐप से नया अनुरोध किया जाता है, पिछले अनुरोध से बाएं ओवर कनेक्शन को फिर से एक एफआईएन पैकेट के साथ बंद कर दिया जाता है और एक नया कनेक्शन बनाया जाता है।

हालांकि हम समझते हैं कि आईओएस कनेक्शन को मिटा देता है बैटरी की खपत कम रखने के लिए, हमें आश्चर्य है कि यह मौजूदा कनेक्शन ठीक तरह से समाप्त नहीं करता और एक नया अनुरोध के शुरू करने के लिए कि समाप्ति defers।

कोई इस व्यवहार समझा सकते हैं, और समाधान का सुझाव कनेक्शन जो नियमित रूप से परिस्थितियों में रहते-जिंदा द्वारा कवर किया जाता में महंगा एसएसएल हैंडशेक से बचने के लिए?

+0

आईओएस के कौन से संस्करण प्रभावित हैं? – Adam

+1

कौन सा डब्ल्यूडब्ल्यूडीसी सेस्टियन? वैसे, लगातार कनेक्शन CFNetwork परत द्वारा संभाला जाता है। और जहां तक ​​मुझे पता है, व्यवहार को बदलने के लिए कोई एपीआई नहीं है। आप देख सकते हैं कि ASIHttpRequest समर्थन कैसे कायम रहता है। इसलिए यह समस्या AFNetworking या NSURLConnection से संबंधित नहीं है। और मुझे लगता है कि हमारे पास ऐसा करने के लिए कुछ भी नहीं है। –

+0

@Adam - जहाँ तक iOS 8 से मैं जानता हूँ कि के रूप में अपनी affected.Here एक और सवाल है कि कुछ हद तक http://stackoverflow.com/q/29063803/730807 से संबंधित है –

उत्तर

0

कुछ हफ्ते पहले मैंने उसी समस्या में उछाल दिया। समाधान वेबसर्वर को आईओएस डिवाइस से रखरखाव http शीर्षलेख को अनदेखा करने और तुरंत कनेक्शन बंद करने के लिए मजबूर करना था।

+0

क्या आप एक ऐसे में वेब सर्वर कॉन्फ़िगर किया है कहने के लिए मतलब है जिस तरह से जीवित कनेक्शन का समर्थन नहीं करता है, तो समस्या नहीं आएगी –