Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在node.js请求中设置无限超时?_Node.js_Http_Express_Request_Timeout - Fatal编程技术网

是否可以在node.js请求中设置无限超时?

是否可以在node.js请求中设置无限超时?,node.js,http,express,request,timeout,Node.js,Http,Express,Request,Timeout,我正在使用'request'node.js module()向另一个服务发送请求。 有时需要发送请求并无限期地等待响应,因为发送请求的服务速度缓慢 可以将“timeout”属性设置为请求,通过这种方式,您将覆盖读取和连接超时的默认值: timeout—包含在中止请求之前等待服务器发送响应头(并启动响应正文)的毫秒数的整数。请注意,如果无法建立底层TCP连接,操作系统范围的TCP连接超时将否决超时选项(Linux中的默认值可以是20-120秒) 但是我们可以设置什么值来使这个超时无限大呢?将ser

我正在使用'request'node.js module()向另一个服务发送请求。 有时需要发送请求并无限期地等待响应,因为发送请求的服务速度缓慢

可以将“timeout”属性设置为请求,通过这种方式,您将覆盖读取和连接超时的默认值:

timeout—包含在中止请求之前等待服务器发送响应头(并启动响应正文)的毫秒数的整数。请注意,如果无法建立底层TCP连接,操作系统范围的TCP连接超时将否决超时选项(Linux中的默认值可以是20-120秒)


但是我们可以设置什么值来使这个超时无限大呢?

server.timeout
属性从
120000
(默认值)设置为
0
所有客户端都有自己的超时(chrome、Firefox等),然后你必须认为设置无限超时没有用,你必须重新思考你的问题,这不是一个好办法,我想十亿美元就足够了。我真的不认为您希望等待超过10天。您可以控制服务器超时。但是客户端可能有自己的超时(例如浏览器),而您无法控制。当然,这是一个设置超时的选项。但神奇的数字总是被视为权宜之计。如果一些官方文档说将timeout设置为0等于无穷大,这将是完美的,但它没有说。没有timeout通常不是一个好的设计。任何一种从不发送响应的编程错误都会导致一方或双方泄漏TCP套接字。暂停是有充分理由的。您可能需要一种不同的设计来传回长时间运行的结果,或者是一个requestID,该结果可以稍后发送回(通过webSocket或通过未来的http请求请求结果)。完全同意您的意见。我已经考虑过了。但是,如果没有人想重写逻辑来使用requestID,我希望可以有一些“超时逻辑”。我担心通过这种方式,我们会为该服务器中的所有请求设置0,对吗?@IrinaPetrushenko,您是在为特定脚本添加还是?我的意思是,如果您有一些带有API的服务器,并且您不想为所有请求设置一个无限限制,那么它将不起作用。在我的情况下,请求从一个node.js服务转到另一个node.js服务。我可以控制/编辑两个服务中的超时。好的,然后检查这个答案