Attualmente stiamo affrontando un problema di prestazioni nella nostra app e riteniamo che alcuni di questi problemi potrebbero essere correlati al fatto che l'app e lo stack di rete AFNetworking sottostante sembrano ignora keep-alive su HTTP 1.1.AFNetworking/NSURLConnection HTTPS keep alive mostra un comportamento strano
Abbiamo ricevuto da Apple che le connessioni persistenti vengono eliminate dopo 3, 6 o 30 secondi rispettivamente, a seconda della versione di iOS e della connettività WiFi/WWAN, indipendentemente dalle informazioni keep-alive sul lato server.
Durante il monitoraggio degli handshake di connessione sui nostri server, abbiamo notato il comportamento strano che una connessione SSL dalla nostra app su un dispositivo iOS è lasciata aperta e non chiusa con un pacchetto FIN. Non appena viene fatta una nuova richiesta dall'app, la connessione sinistra della precedente richiesta viene ALLORA chiusa con un pacchetto FIN e viene creata una nuova connessione.
Mentre comprendiamo che iOS elimina le connessioni per mantenere basso il consumo della batteria, ci chiediamo che non risolva correttamente la connessione esistente e rimandi tale terminazione all'inizio di una nuova richiesta.
Qualcuno potrebbe spiegare questo comportamento e suggerire soluzioni per evitare costosi handshake SSL nelle connessioni coperte da keep-alive in condizioni normali?
Quali versioni di iOS sono interessate? – Adam
Quale valutazione del WWDC? A proposito, la connessione persistente è gestita dal livello CFNetwork. E per quanto ne so, non ci sono API per cambiare il comportamento. Puoi dare un'occhiata a come ASIHttpRequest supporta la connessione permanente. Quindi questo problema non è legato ad AFNetworking o NSURLConnection. E suppongo che molto probabilmente non avremo niente da fare. –
@Adam - Per quanto ne so da iOS 8 è interessato.Here è un'altra domanda che è in qualche modo correlata a http://stackoverflow.com/q/29063803/730807 –