是否有一个“请求”像使用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%。