在http.request的nodejs中是否存在默认超时

时间:2014-05-26 17:16:26

标签: node.js

在nodejs中,服务器(传入的http请求)的默认超时时间为120000(2分钟)(参见:http://nodejs.org/api/http.html#http_server_timeout

但如果我在docs中的nodejs(http.request)中执行了http请求,我只会找到一个函数(http://nodejs.org/api/http.html#http_request_settimeout_timeout_callback)来手动设置超时。

任何人都知道nodejs中的http请求是否有默认超时?或者nodejs尝试发送没有结束的http请求吗?

3 个答案:

答案 0 :(得分:11)

您想设置server.timeout属性(默认为120,000,如您所见)。

答案 1 :(得分:3)

我也对此感兴趣。通过阅读代码,Node.js在http请求(自然)的引擎下使用Socket。 (下面的源代码链接在我写这篇文章时指的是v8.8.0)

https://github.com/nodejs/node/blob/master/lib/_http_outgoing.js

此文档默认情况下Socket没有超时

https://nodejs.org/dist/latest-v6.x/docs/api/net.html#net_socket_settimeout_timeout_callback

而消息来源也是如此。

https://github.com/nodejs/node/blob/master/lib/net.js

答案 2 :(得分:0)

不。没有默认的超时时间。

Node.js在http请求的后台使用Socket,并且默认情况下套接字没有超时。

使用http.request的{timeout:XX}参数配置正确的请求超时。