【问题标题】:How to avoid connection timeout when server sends response late?当服务器延迟发送响应时如何避免连接超时?
【发布时间】:2016-10-22 13:32:41
【问题描述】:

我已经构建了一个服务器,它执行一些操作(运行一些脚本),大约需要 10 秒,然后向客户端发送响应。

当我使用

从同一服务器进行 curl 调用时
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 请求,我也会遇到这个问题。

【问题讨论】:

  • curl 有一个超时选项:可以使用 -m ,阅读this post

标签: java sockets http curl router


【解决方案1】:

为什么不直接使用 Tomcat 来为您处理。

【讨论】:

  • 我没用过tomcat。用tomcat解决问题了吗?
【解决方案2】:

您必须增加客户端连接超时时间。在curl 中,设置--connect-timeout--max-time 选项。

【讨论】:

    猜你喜欢
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多