Может ли один https.agent обслуживать все сообщения? - PullRequest
0 голосов
/ 10 ноября 2019

В node.js 12.13.0 я использую модуль node-fetch для создания некоторых сообщений.

Документация по использованию пользовательского агента находится здесь :

Там, похоже, указывается, что вы должны создавать новый пользовательский агент для каждой получаемой вами выборки. Однако я вижу, что он также работает для создания одного настраиваемого агента (во внешней области), а затем просто ссылается на тот же самый настраиваемый агент для всех последующих выборок.

Пример:

import { default as fetch } from 'node-fetch';
import { default as http } from 'http';
import { default as https } from 'https';

const httpAgent = new http.Agent({ keepAlive: true });
const httpsAgent = new https.Agent({ keepAlive: true });

export async function post(obj, toURL)
{
    let options = {};
    options.method = "POST";
    // Other options are omitted here for the sake of brevity
    // The pertinent option is agent. Notice that the http and
    // https agents were created outside the scope of this function,
    // and are therfore reused each time this fucntion is called.
    options.agent = function (_parsedURL)
    {
        if (_parsedURL.protocol === 'http:')
        {
            return httpAgent;
        }
        else
        {
            return httpsAgent;
        }
    };  
    return fetch(toURL, options);
}

Есть ли какие-либо недостатки в создании только одного настраиваемого https.agent, а затем ссылки на этот синглтон в параметрах всех последующих выборок?

...