【发布时间】:2020-11-29 22:16:53
【问题描述】:
我正在使用superagent,在检查网络时我注意到 superagent 正在为每个请求创建一个新的 TCP 连接。我正在使用 superagent 处理一系列请求,这会导致大量 TCP 连接(可能达到数百个)。
我尝试关注this idea 并使用agentkeepalive 包,但是这种方法有一些缺点:
- 虽然 superagent 可以开箱即用地使用 http 和 https,但
agentkeepalive需要根据协议进行定义。 - 作为上一节的结果,如果我执行重定向到 https 请求的 http 请求,我会收到
Protocol "https:" not supported. Expected "http:"错误,因为协议已更改。 - 由于第 2 节,应用程序崩溃了,因为
uncaughtException(仅在重定向时发生,而不是在使用错误协议时发生,即 httpagentkeepalive用于 https 请求)
不用说,使用request.set('Connection', 'keep-alive'); 并没有解决它。
所以我的问题是:如何在使用superagent 时重用 TCP 连接而不会出现重定向错误?除了agentkeepalive 包之外,还有没有其他解决方案可以重用superagent 中的TCP 连接?
【问题讨论】:
标签: tcp keep-alive superagent