Существует ли пакет типа "запрос" с использованием 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%.