В настоящее время у меня есть сетевой клиент на основе JVM, который выполняет длинный HTTP-запрос (он же комета), используя стандартный java.net.HttpURLConnection. У меня установлен очень высокий таймаут для подключения (1 час). Для большинства пользователей это работает нормально. Но некоторые пользователи не получают данные, отправленные с сервера, и в конечном итоге время ожидания истекает через 1 час.
Моя теория заключается в том, что маршрутизатор (NAT) истекает по таймауту и сбрасывает свои соединения, потому что они простаивают слишком долго, прежде чем сервер отправит какие-либо данные.
Тогда мои вопросы таковы:
Могу ли я включить поддержку TCP для соединений, используемых java.net.HttpURLConnection? Я не мог найти способ сделать это.
Есть ли другой API (отличный от HttpURLConnection), который я должен использовать вместо этого?
Другие решения?