Nella mia app iOS, ho una funzione di ricerca che recupera i risultati da un server. Gli aggiornamenti di ricerca vengono pubblicati non appena l'utente aggiorna la query, pertanto in questo modo vengono eseguite più richieste in successione.iOS e Go - Keep-Alive con NSURLSession
Quindi la mia domanda è: come posso garantire che il TCP keep-alive venga utilizzato su queste connessioni? Mi piacerebbe ridurre il più possibile la latenza, quindi è importante mantenere una connessione dopo la prima richiesta e riutilizzarla per le seguenti richieste.
Sto utilizzando NSURLSession e ho sentito che utilizza keep-alive per impostazione predefinita, ma come posso saperlo con certezza? La registrazione delle richieste sul server non mostra alcuna differenza tra ogni richiesta successiva, ma non mi aspetto di vedere alcuna modifica solo dalle informazioni dell'intestazione.
Qualsiasi aiuto qui? Sto usando Go sul mio server, quindi è possibile che abbia bisogno di qualche configurazione aggiuntiva anche da quel lato.
Grazie per le informazioni utili. Ho apportato alcuni miglioramenti significativi all'algoritmo da quando è stata posta la domanda, soprattutto implementando un timer in modo che la ricerca invii una richiesta solo quando l'utente smette di digitare per un momento. Ma sono curioso dell'approccio "paging" che dici - potresti chiarire cosa intendi con questo? – hundley
@hundley paging significa che se ci sono più di un certo numero di risultati, viene restituito solo il primo set, in seguito i batch vengono recuperati aggiungendo una variabile di richiesta con quale "pagina" si desidera. Pensa a come i risultati di Google arrivano in serie. Importa solo se il numero di risultati può essere grande, naturalmente. Il tuo "aspetta una pausa" è una tecnica molto comune e molto utile. –