是否有一个“请求”像使用http2的包?

我们在工作中使用请求 。 我们现在可以访问我们的服务器到服务器请求的http2

你知道任何节点包与使用http2的请求相同的api(ish)吗?

我面临同样的问题,找不到一个模块。 这不是一个好的解决scheme,但是你可以破解请求模块来添加http2。 由于没有人有更好的答案,值得一提。

这就是我所做的:

将http2作为布尔值添加到传入请求的选项对象中。

在node_modules / request中运行:

 npm install http2 

打开node_modules / request / request.js

要求http2模块在顶部附近:

 , http2 = require('http2') 

确保请求不会添加“主机”头(在HTTP2中不推荐使用,如果另一端使用http2节点模块,则会导致错误),请将行304(大约)更改为:

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

将http2模块添加到第468行(或如此)的对象声明,以便它变成:

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

然后在前一行的variables声明之后请求使用新的模块。 添加到第471行(左右):

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

应用程序的其余部分可以保持不变,如果options.http2没有设置,那么请求的行为就像它总是这样。

在一个非常不科学的testing中,我发现做出这样的改变使得一个服务的吞吐量增加了大约25%。