2013-02-06 2 views
12

Google은 현재 앱의 성능 문제를 처리하고 있으며 이러한 문제 중 일부는 앱과 기본 AFNetworking 네트워크 스택이 HTTP 1.1에서 keep-alive를 무시하십시오.AFNetworking/NSURLConnection HTTPS keep alive 이상한 동작 표시

우리는 Apple 측의 연결 유지 정보에 관계없이 iOS 버전과 WiFi/WWAN 연결에 따라 각각 3, 6 또는 30 초 후에 영구 연결이 제거된다는 정보를 얻었습니다.

우리 서버의 연결 핸드 셰이크를 모니터링하는 동안 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

몇 주 전에 같은 문제가 발생했습니다. 해결책은 웹 서버가 iOs 장치의 Keepalive http 헤더를 무시하고 즉시 연결을 닫도록 강제하는 것입니다.

+0

과 다소 관련이있다. 그런 의미에서 웹 서버를 keep-alive 연결을 지원하지 않는 방식으로 문제가 발생하지 않습니다. –