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

时间:2014-08-02 19:48:11

标签: ajax node.js

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

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

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

服务器端:当客户端命中端点/ 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();

客户端:Backbone同时发送数百个请求(/ fetchmedia),调用许多fetchinstagram函数。我以前做的方式是发送ajax,同时也有数百个,但处理得非常好。即使有20个用户,节点也会挂起,而ajax会处理1000多个用户

由于

0 个答案:

没有答案
相关问题