W mojej aplikacji na iOS, mam funkcję wyszukiwania, która pobiera wyniki z serwera. Aktualizacje wyszukiwania są aktualizowane, gdy użytkownik aktualizuje zapytanie, co powoduje, że kilka żądań jest wykonywanych kolejno.iOS i Go - Keep-Alive przy użyciu NSURLSession
Moje pytanie brzmi: w jaki sposób mogę zagwarantować, że protokół TCP keep-alive jest używany w tych połączeniach? Chciałbym zmniejszyć jak najwięcej opóźnień, dlatego ważne jest, aby połączenie zostało utrzymane po pierwszym żądaniu i ponownie użyte dla następujących żądań.
Używam NSURLSession i słyszałem, że domyślnie zatrudnia ona tryb życia, ale skąd mogę wiedzieć na pewno? Rejestrowanie żądań na serwerze nie wykazuje żadnej różnicy między kolejnymi żądaniami, ale nie spodziewałbym się zobaczyć żadnych zmian bezpośrednio z informacji nagłówka.
Każda pomoc tutaj? Używam Go na moim serwerze, więc możliwe, że potrzebuje dodatkowej konfiguracji po tej stronie.
Dzięki za pomocne informacje. Wprowadziłem kilka znaczących ulepszeń w algorytmie, ponieważ zadawano pytanie, co najważniejsze, wprowadzając zegar tak, że wyszukiwanie wysyła tylko żądanie, gdy użytkownik przestaje pisać przez chwilę. Ale ciekawi mnie podejście "stronicowania", o którym wspomniałeś - czy możesz wyjaśnić, co przez to rozumiesz? – hundley
@hundley paging oznacza, że jeśli jest więcej niż kilka wyników, zwracany jest tylko pierwszy zestaw, a późniejsze partie są pobierane przez dołączenie zmiennej żądania do żądanej strony. Zastanów się, jak wyniki Google pojawiają się w partiach. Ma to znaczenie tylko, jeśli liczba wyników może być oczywiście duża. Twoje "oczekiwanie na przerwę" to bardzo powszechna technika i bardzo pomocna. –