我们正在使用request。我们现在可以访问http2
以获取服务器到服务器的请求。
您是否知道任何节点包与使用http2的请求具有相同的api(ish)?
答案 0 :(得分:1)
我遇到了同样的问题,找不到模块。这个不是一个很好的解决方案,但你可以破解请求模块来添加http2。由于没有人能够提供更好的答案,所以值得一提。
这就是我所做的:
将http2作为布尔值添加到传递给 request 的选项对象。
在node_modules / request中运行:
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}
然后使 request 在前一行的变量声明之后使用新模块。将其添加到第471行(或左右):
if (options.http2) {
protocol = 'http2';
}
如果未设置options.http2,那么应用程序的其余部分可以保持不变,那么 request 的行为就像它一样。
在一项非常不科学的测试中,我发现进行此项更改可将一项服务的吞吐量提高约25%。