【问题标题】:Node.js 0.4.10. http get( ) request " ETIMEDOUT Connection timed out " frequentlyNode.js 0.4.10。 http get() 请求“ETIMEDOUT 连接超时”频繁
【发布时间】:2011-12-15 05:51:46
【问题描述】:

最近,我陷入了“ETIMEDOUT 连接超时”的问题。 我的应用程序只是使用 get() 方法从远程服务器下载文件和数据。 在下载过程中(我的意思是我已经下载了一些文件但没有完全下载),我只是得到“ETIMEDOUT Connection timed out”。这是node.js的一个错误?我使用 node.js 0.4.10。由于 ETIMEDOUT,我无法完全下载文件。

http = require('http');
client_req = http.get(...)//

//...
client_req.on('error', callback(err){...})/*When ETIMEDOUT, I get the error 
message: ETIMEDOUT  Connection timed out  here.*/

【问题讨论】:

  • 错误就是它的名字,超时。不一定是 node.js 错误。当您使用具有相同 url 的 curl 时,您是否会超时?
  • 嗨,我不确定 curl。但正如我上面所描述的。例如,我有 10 个文件要从同一个连接下载。我总是已经下载了 5 或 9 个文件,然后,ETIMEDOUT 连接超时。我不知道为什么。这些天我尝试阅读node.js的源代码来解决这个问题。但我失败了。而且我找不到正确的方法来打印 lib/http.js lib/net.js 中的日志以定位发出 ETIMEDOUT 错误的人。

标签: node.js


【解决方案1】:

这不是 Node.js 错误,很可能无法再访问 url,这就是你得到超时的原因。正如@DeaDEnD 建议的那样,做一个 curl 看看你是否也使用 cURL 超时。

【讨论】:

  • 嗨,我不确定。 node.js http 客户端请求队列怎么样?我发现 http.js 中有 maxsockets = 5。因为我的应用程序必须一次 get() 数百次。
  • 您可以设置 agent: false 来覆盖它:nodejs.org/docs/latest/api/http.html#http.get
  • 设置代理:false。但是“ETIMEDOUT 连接超时”有时又会出现。
  • 你有没有把 url 卷曲几次?您确定该网站不会经常超时吗?
  • 我只是写了一个 shell 脚本 curl 10000 次到服务器 url。什么也没发生。我没有收到任何超时错误。哎呀...
猜你喜欢
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
相关资源
最近更新 更多