通过代理发送请求时无法建立隧道套接字

时间:2019-06-25 10:45:13

标签: node.js proxy request squid

我有一个for循环,其中使用npm请求库同步调用10-15个HTTP请求。除了一个参数外,URL相同。例如:

http://example.com/sendorder?orderid=1 
http://example.com/sendorder?orderid=2

我用代理池中的每个代理地址调用每个请求。 在15个请求中,每次2到3个失败。我遇到两个不同的错误。有时是第一个,有时是另一个。我还尝试使用相同的代理调用每个请求,但遇到相同的错误,因此该错误与损坏的某些代理地址无关。

第一类错误:

{ Error: tunneling socket could not be established, statusCode=503
at ClientRequest.onConnect (/Users/admin/Documents/node-binance-api/node_modules/tunnel-agent/index.js:166:19)
at Object.onceWrapper (events.js:319:30)
at emitThree (events.js:136:13)
at ClientRequest.emit (events.js:217:7)
at Socket.socketOnData (_http_client.js:474:11)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:597:20) code: 'ECONNRESET' }

第二种错误类型:

{ Error: tunneling socket could not be established, cause=connect ETIMEDOUT 35.209.77.242:3128
at ClientRequest.onError (/Users/deniz/Documents/node-binance-api/node_modules/tunnel-agent/index.js:177:17)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at Socket.socketErrorListener (_http_client.js:387:9)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9) code: 'ECONNRESET' }

这是生产代码,已经运行了几个月没有任何问题。现在,它开始出现代理连接错误。代理没有更改,代码也没有更改。我已经调试了几天,但无法弄清楚是什么原因导致这些代理连接错误。我尝试使用新的代理地址,但仍然相同。

奇怪的是,我尝试在每个请求之间等待10秒,但仍然有些请求因此错误而失败。所以我不认为这是因为代理服务器上的负载。

0 个答案:

没有答案