2016-10-22 3 views
0

Я построил сервер, который выполняет какое-то действие (запускает некоторые скрипты), который занимает около 10 секунд, а затем отправляет ответ клиенту.Как избежать таймаута соединения, когда сервер отправляет ответ поздно?

Когда я сделать завиток вызов с того же сервера, используя

curl http://localhost/get-me-status 

У меня он работает нормально, но когда я делаю

$ curl http://server/get-me-status 
curl: (56) Recv failure: Connection reset by peer 

В настоящее время мой сервер не отправляет ответ клиенту около 10 секунд до завершения действия на его стороне. Как сохранить розетку до тех пор, пока клиент не получит ответ? Мой сервер в настоящее время находится на Java, и я использую vertx на стороне сервера.

Мое впечатление, что один из промежуточных маршрутизаторов убивает соединение, увидев, что соединение простаивает в течение нескольких секунд, так как оно отлично работает, когда клиент также находится на одной машине. Есть ли способ, которым я продолжаю отправлять noob или любые другие сообщения клиенту, чтобы сохранить соединение в живых?

Я сталкиваюсь с этой проблемой, даже когда я делаю http-запрос из браузера.

+0

curl имеет опцию тайм-аута: вы можете использовать -m , прочитайте [этот пост] (http://unix.stackexchange.com/questions/94604/does-curl-have-a-timeout/94612) – FMiscia

ответ

0

Почему бы не просто использовать Tomcat для обработки этого для вас.

+0

I никогда не использовали tomcat. Использует ли tomcat решение проблемы? – raju

0

Необходимо установить время ожидания подключения клиентов . В curl установите параметры --connect-timeout и --max-time.

Смежные вопросы