Чтение и запись тайм-аутов

Каково поведение тайм-аутов чтения и записи в OkHttp?

Вызывается ли исключение таймаута, когда весь запрос превышает продолжительность таймаута, или когда сокет не получает (считывает) или не посылает (не записывает) какой-либо пакет в течение этой продолжительности.

Я думаю, что это второе поведение, но может ли кто-нибудь прояснить это?

Заранее спасибо.

Ответ 1

Таймауты срабатывают, когда вы слишком долго блокируете. При чтении это происходит, если сервер не отправляет вам данные ответа. При записи это происходит, если сервер не читает отправленный вами запрос. Или, если в сети создается впечатление, что это происходит!

Таймауты непрерывны: если таймаут составляет 3 секунды, а ответ 5 байтов, крайний случай может завершиться за 15 секунд, пока сервер отправляет что-то каждые 3 секунды. Другими словами, тайм-аут сбрасывается после успешного ввода-вывода.

Класс Okios Timeout также предлагает абстракцию предельного срока, касающуюся общего времени.