Предоставить httpClient для узла- soap - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь установить 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).

1 Ответ

0 голосов
/ 04 мая 2020

Обнаружено, что установка свойства keepAlive в HTTP-агенте разрывает соединение. Поэтому я установил на нем только maxSockets и добавил заголовок к node-soap при создании клиента.

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

...