Существует ли пакет типа "запрос" с использованием http2?

Мы используем запрос на работе. Теперь у нас есть доступ к http2 для нашего сервера запросы к серверу.

Знаете ли вы какой-либо пакет узлов с тем же API (ish), что и запросом, использующим http2?

1 ответ

Я столкнулся с той же проблемой и не смог найти модуль. Это не очень хорошее решение, но вы можете взломать модуль запроса, чтобы добавить http2. Поскольку никто не дал лучшего ответа, стоит упомянуть.

Вот что я сделал:

Добавьте http2 в качестве логического значения для объекта параметров, переданного в запрос.

В node_modules/ запросе выполните:

npm install http2

Откройте node_modules/request/request.js

Требуется модуль http2 где-то в верхней части:

, http2 = require('http2')

Убедитесь, что запрос не добавляет заголовок "host" (устарел в HTTP2 и вызывает ошибку, если другой конец использует модуль узла http2), поэтому измените строку 304 (или около того) на:

if (!self.hasHeader('host') && !options.http2) {

Добавьте модуль http2 в объявление объекта в строке 468 (или около того), чтобы он стал:

, defaultModules = {'http:':http, 'https:':https, 'http2': http2}

Затем сделайте запрос, используя новый модуль после объявления переменной в предыдущей строке. Добавьте это к строке 471 (или около того):

  if (options.http2) {
    protocol = 'http2';
  }

Остальная часть приложения может остаться неизменной, если options.http2 не установлен, тогда запрос ведет себя как всегда.

В очень ненаучном тесте я обнаружил, что внесение этого изменения увеличило пропускную способность одного сервиса примерно на 25%.

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