向节点soap提供httpClient



我正在尝试在请求上设置maxSockets,并在创建客户端时将其发送给node-soap。没有这一点,交易就可以很好地进行。我尝试通过httpAgent添加它,但一旦添加了maxSockets属性,就出现了socket hang up错误。所以,我现在的方法是尝试使用库中可用的httpClient来配置它,但是,我还没能做到

//OPTION 1
const httpsAgent = new https.Agent({ keepAlive: true });
const httpsClient: AxiosInstance = axios.create();
httpsClient.request({
url: url,
httpsAgent: httpsAgent,
timeout: 15000,
});
//OPTION 2
const httpsAgent = new https.Agent({ keepAlive: true });
const httpsClient: AxiosInstance = axios.create();
httpsClient.defaults.httpsAgent = HttpsAgent;

以下是库文档中关于httpClient的说明:httpClient: to provide your own http client that implements request(url, data, callback, exheaders, exoptions).

发现在HTTP代理上设置keepAlive属性会终止连接。因此,我只在上面设置了maxSockets,并在创建客户端时向node-soap添加了一个标头。

client.addHttpHeader("connection", "keep-alive");

最新更新