NodeJ中有多个连接

时间:2013-04-29 07:13:39

标签: node.js upload download connection limit

我需要通过NodeJs 制作下载脚本,这会限制每个会话的连接数和速度。

我可以读取文件并写入是由NodeJs响应的,也许我可以通过sleep npm的包来限制速度,但是我应该如何支持在NodeJs中下载文件的多个连接?

例如,当用户通过IDM下载它时,他/她可以在下载期间看到7或8个连接。

在apache中,它可以通过 mode_limitipconn bw_mod

来实现

我的意思是像RapidShare这样限制每个类别的速度和连接数。

1 个答案:

答案 0 :(得分:0)

您要做的是将资源访问限制为一次只有一个IP地址。

使用Node非常容易,因为所有请求都是从一个进程提供的。

您可以在发出请求时将IP地址输入到对象中,然后在新请求进入重复项时检查该对象。

如果你正在使用Express并且你的路线在模块中,你可以将IP连接对象放在路由模块的顶层。

var connectedIPs = {};

exports.myDownloadRoute = function(request, response) {
  var IP = request.connection.remoteAddress;
  if(connectedIPs.IP) {
    response.redirect("http://mysite.com/download_rules.html");
    return;
  }
  connectedIPs.IP = true;
  // pseudo send a file call, replace this with your code
  send_a_file(function(err) {
    // done sending or error, remove from connectedIPs
    delete connectedIPs.IP;
  }); 
}