Узел https.request для Docker API закрывается до полного возврата результата

Я пытаюсь создать Node https.request для демона Docker на удаленной машине. Все работает нормально при подключении к демонам с примерно 40 контейнерами (работает или не работает) - или когда я ограничиваю запрос только возвращением около 40 контейнеров.

Тем не менее, без ограничений (все контейнеры должны быть возвращены, в основном docker ps -a команда) кажется, что соединение заканчивается до того, как будет возвращено все тело. Мне интересно, связано ли это с тем, сколько Docker может вернуть, или мне нужно указать в своем запросе, чтобы соединение оставалось живым для более длительного ответа.

Вот мой код до сих пор:

var options = {
    hostname: server,
    port: port,
    path: path,
    method: 'GET',
    key: fs.readFileSync('/path/to/**-client-key.pem'),
    cert: fs.readFileSync('/path/to/**-client-cert.pem'),
    rejectUnauthorized: false,
};

var request = https.request(options, function(result) {
    console.log("statusCode: ", result.statusCode);
    console.log("headers: ", result.headers);

    var resultBody = '';
    result.on('data', function(d) {
        resultBody += d;
    });
    result.on('end', function() {
        callback(resultBody);
    });

});

request.on('error', function(e) {
    console.error(e);
});

request.write('data\n');
request.write('data\n');
request.end();

Что происходит, так это то, что result.on('end') Функция вызывается до того, как все данные получены.

0 ответов

Другие вопросы по тегам