Node.js 是否有一个“问题”;“请求”;喜欢使用http2的包吗?
我们在工作中使用。现在,我们可以访问Node.js 是否有一个“问题”;“请求”;喜欢使用http2的包吗?,node.js,http,request,http2,Node.js,Http,Request,Http2,我们在工作中使用。现在,我们可以访问http2进行服务器到服务器的请求 您知道有哪个节点包的api(ish)与使用http2的请求相同吗?我遇到了同样的问题,找不到模块。这不是一个好的解决方案,但是您可以通过破解请求模块来添加http2。由于没有人提出更好的答案,因此值得一提 这就是我所做的: 将http2作为布尔值添加到传递到请求的options对象中 在节点_模块/请求运行中: npm install http2 打开node_modules/request/request.js 需要靠近
http2
进行服务器到服务器的请求
您知道有哪个节点包的api(ish)与使用http2的请求相同吗?我遇到了同样的问题,找不到模块。这不是一个好的解决方案,但是您可以通过破解请求模块来添加http2。由于没有人提出更好的答案,因此值得一提 这就是我所做的: 将http2作为布尔值添加到传递到请求的options对象中 在节点_模块/请求运行中:
npm install http2
打开node_modules/request/request.js
需要靠近顶部的某个位置安装http2模块:
, http2 = require('http2')
确保请求没有添加“主机”头(在HTTP2中已弃用,如果另一端正在使用HTTP2节点模块,则会导致错误),因此将第304行(或so)更改为:
将http2模块添加到第468行(大约)的对象声明中,使其成为:
, defaultModules = {'http:':http, 'https:':https, 'http2': http2}
然后,在前一行的变量声明之后,请求使用新模块。将其添加到第471行(大约):
应用程序的其余部分可以保持不变,如果未设置options.http2,则请求的行为与往常一样
在一个非常不科学的测试中,我发现进行此更改将一个服务的吞吐量提高了约25%
, defaultModules = {'http:':http, 'https:':https, 'http2': http2}
if (options.http2) {
protocol = 'http2';
}