[Node.js通过子进程的HTTP请求与通过C子进程的libcurl的请求

问题描述 投票:1回答:1

我有两个选择来运行子进程以将请求发送到HTTP服务器。一个是通过Node.js子进程通过内置节点支持或通过“请求”模块发出http请求的。另一个选择是使用libcurl api派生C子进程。主要的http服务器是Node.js服务器,它将分叉子进程。它可以派生C可执行文件或Node.js可执行文件。

有人进行基准测试或知道这两个选项涉及的性能问题。 C和Node.js编程技能都可以使用。

node.js libcurl
1个回答
0
投票

我建议第三个选项,直接为Node.js使用libcurl绑定:https://github.com/JCMais/node-libcurl

const { curly } = require('node-libcurl');

const { statusCode, data, headers } = await curly.get('http://www.google.com')

或更详细的方式(没有承诺):

const { Curl } = require('node-libcurl');

const curl = new Curl();

curl.setOpt('URL', 'www.google.com');
curl.setOpt('FOLLOWLOCATION', true);

curl.on('end', function (statusCode, data, headers) {
  console.info(statusCode);
  console.info('---');
  console.info(data.length);
  console.info('---');
  console.info(this.getInfo( 'TOTAL_TIME'));

  this.close();
});

curl.on('error', curl.close.bind(curl));
curl.perform();

我已经完成了一些基本的基准测试,它似乎是Node.js最快的URL客户端(但是基准测试总是要花些功夫)。它支持大多数libcurl选项。

免责声明:我是包裹的作者

© www.soinside.com 2019 - 2024. All rights reserved.