2013-02-06 26 views
12

我們目前正在處理應用程序中的性能問題,並且我們認爲其中一些問題可能與應用程序和底層AFNetworking網絡堆棧似乎有關忽略HTTP 1.1上的保持活動狀態。AFNetworking/NSURLConnection HTTPS保持活躍顯示奇怪的行爲

我們從Apple獲得的信息表明,持續連接分別在3,6或30秒後清除,具體取決於iOS版本和WiFi/WWAN連接,無論服務器端保持活動狀態如何。

在監視我們服務器上的連接握手時,我們注意到我們iOS設備上的應用程序的SSL連接處於打開狀態並且沒有用FIN數據包關閉的奇怪行爲。一旦從應用程序發出新的請求,則來自先前請求的剩餘連接隨即通過FIN數據包關閉,並創建新的連接。

儘管我們知道iOS清除連接以保持電池電量消耗低,但我們想知道它不會正確終止現有連接,並將終止延遲到新請求的開始。

有人可以解釋這種行爲,並建議解決方案,以避免在常規條件下保持活動狀態下連接的昂貴SSL握手?

+0

iOS的哪些版本受到影響? – Adam

+1

哪個WWDC系統?順便說一下,持久連接由CFNetwork層處理。據我所知,沒有改變行爲的API。您可以查看ASIHttpRequest支持如何持久連接。因此,此問題與AFNetworking或NSURLConnection無關。我想我們很可能無事可做。 –

+0

@亞當 - 據我所知,從iOS 8受到了影響。這裏是另一個與http://stackoverflow.com/q/29063803/730807 –

回答

0

幾周前我遇到了同樣的問題。 解決方案是強制Web服務器忽略來自iOs設備的keepalive http頭並立即關閉連接。

+0

有關的問題,你的意思是說你已經配置了這樣的web服務器不支持保持連接的方式,所以問題不會出現 –