Ajax 客户端API请求比通过节点的代理请求更快

Ajax 客户端API请求比通过节点的代理请求更快,ajax,node.js,Ajax,Node.js,目前,我正在开发一个应用程序,它可以向instagram等外部API服务发出数百个并发请求,例如在客户端使用ajax。响应时间非常快 但是,我使用request+jsonstream将请求处理部分迁移到节点后端,但由于并发性>5个请求,即使在将maxsockets更改为更高的值之后,仍然会出现套接字挂起错误。总的来说,它比直接在客户端使用ajax执行API请求慢得多 我的问题是如何使代理服务器更快/响应更快?或者使用ajax类似于在客户端但在节点上执行的操作 服务器端:当客户端点击endpoin

目前,我正在开发一个应用程序,它可以向instagram等外部API服务发出数百个并发请求,例如在客户端使用ajax。响应时间非常快

但是,我使用request+jsonstream将请求处理部分迁移到节点后端,但由于并发性>5个请求,即使在将maxsockets更改为更高的值之后,仍然会出现套接字挂起错误。总的来说,它比直接在客户端使用ajax执行API请求慢得多

我的问题是如何使代理服务器更快/响应更快?或者使用ajax类似于在客户端但在节点上执行的操作

服务器端:当客户端点击endpoint/fetchmedia/时,节点指向此函数

var fetchInstagram = function(user_id, max_id, min_timestamp, max_timestamp, array,  callback) {
http.request({
    host: 'endpoint',
    path: 'endpoint',
    method: 'get'
  }, function(res) {
    var body = '';

    res.on('data', function(chunk) {
        body += chunk;
    });

    res.on('end', function() {
      var data = JSON.parse(body);
      array = array.concat(data.data);
      if (data.pagination.next_max_id != undefined) {
        fetchInstagram(user_id, data.pagination.next_max_id, min_timestamp, max_timestamp, array, callback);
      } else {
        callback(array);
      }
    });
  }).on('error', function(e) {
        console.log("Got error: ", e);
  }).end();
客户端:主干网同时发送数百个请求/fetchmedia,调用许多fetchinstagram函数。我以前的做法是发送ajax,它也可以同时发送数百个,但处理得非常好。节点即使有20个用户也会挂起,而ajax可以处理1000多个用户


谢谢

发布您已经尝试过的不同代码片段非常有用。您说您尝试过更改maxSockets,但是在您的请求配置中设置agent:false如何?尝试过但仍会遇到挂断错误hrmm,这1000多个用户都是唯一的吗?我想知道如果你在一段特定的时间内从同一个IP生成过多的请求,instagram是否可能会限制速率?