代理数据同时发送到多个请求

时间:2016-08-25 22:42:36

标签: node.js http http-proxy

我有一个像http代理一样的服务器。一些GET需要很长时间(10秒左右)才能加载。在我的情况下,有时多个用户大约同时请求相同的URL。我想在nodejs中重写那个小的web-proxy部分。目前,简单的逻辑大致如下:

  • 在每个传入的GET上开始传出GET到代理资源。
  • 我在下载代理资源时获得了渐进式更新,我将此数据写回原始传入的GET。

我想以这样的方式更新它,以便如果有相同资源的另一个并发请求进来,那么我将重用已经在进行中的第一个传出GET。基本上,第一个传出GET的渐进式更新现在将写入两个不同的传入GET。 我可以在nodejs中使用什么来完成该任务,是否有任何功能可以完成任务?我更喜欢非常简单(我宁愿自己编写代码,我只是不知道我应该为这个任务研究哪些库。)

以下是为一个连接执行此操作的示例nodejs代码:

var express = require('express');
var http = require('http');
var app = express();

app.use(function(req, res, next){
    var opt = {host: "static1.example.com", path: req.path};
    var request = http.request(opt, function(response){
        res.setHeader('Content-Length', response.headers['content-length']);
        res.writeHead(response.statusCode);
        response.on('data', function(chunk){
            res.write(chunk);
        });
        response.on('end', function(){
            res.end();
            next();
        });
    }).end();
});
app.listen(8080);

0 个答案:

没有答案