2013-04-29 70 views
0

我需要通過NodeJs下載腳本,這限制了每個會話的連接數量和速度。NodeJs中有多個連接

我可以讀取文件和寫入是由NodeJs響應,也許我可以限制速度sleep npm包,但我應該如何支持多個連接來在NodeJs中下載文件?

例如,當用戶通過IDM下載時,他/她可以在下載期間看到7或8個連接。

在Apache中可以通過mode_limitipconnbw_mod

我的意思是這樣RapidShare的,限制速度和連接數爲每個類別做。

回答

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; 
    }); 
} 
+0

如果用戶嘗試請求由IDM當前頁中,只有一個連接由接受的NodeJS,我需要將其限制到不同數量的用戶A和用戶B.如7或8的連接15 – 2013-04-29 07:44:41