Mam problem z biblioteką, której używam. Może to być biblioteka albo ja źle ją wykorzystuję!
Zasadniczo, kiedy to robię (limit czasu w milisekundach)
_ignitedHttp.setConnectionTimeout(1); // v short
_ignitedHttp.setSocketTimeout(60000); // 60 seconds
Nie jest generowany żaden wyjątek limitu czasu i działa poprawnie, jednak gdy wykonuję następujące czynności,
_ignitedHttp.setConnectionTimeout(60000); // 60 seconds
_ignitedHttp.setSocketTimeout(1); // v short
Otrzymuję wyjątek dotyczący gniazda.
Więc moje pytanie brzmi: dlaczego nie mogę zasymulować wyjątku połączenia? Czy nie rozumiem różnicy między gniazdem a przekroczeniem limitu czasu połączenia? Biblioteka jest tutaj (jeszcze nie została oficjalnie wydana).
źródło
Limit czasu połączenia to maksymalny czas, przez jaki program jest gotów czekać, aby skonfigurować połączenie do innego procesu. W tym momencie nie otrzymujesz ani nie publikujesz żadnych danych aplikacji, po prostu ustanawiasz połączenie.
Timeout gniazdo jest limit czasu podczas oczekiwania na poszczególne pakiety. Powszechnym błędem jest przekonanie, że przekroczenie limitu czasu gniazda to limit czasu na otrzymanie pełnej odpowiedzi. Więc jeśli masz limit czasu gniazda wynoszący 1 sekundę i odpowiedź złożoną z 3 pakietów IP, gdzie każdy pakiet odpowiedzi dociera do 0,9 sekundy, co daje całkowity czas odpowiedzi 2,7 sekundy, nie będzie limitu czasu.
źródło