Is there any kind of limit with node for I/O?

I am writing a code that is downloading one file from some place and I am streaming to the client real time. The file is never full in my sever. Only chunks. Here is the code:

downloader.getLink(link, cookies[acc], function(err, location) {
    if (!err) {
        downloader.downloadLink(location, cookies[acc], function(err, response) {
            if (!err) {
                res.writeHead(200, response.headers);
                response.pipe(res);
            } else
                res.end(JSON.stringfy(err));
        });
    } else {
        res.end(JSON.stringfy(err));
    }
});

As I can see there is nothing blocking this code since response is comming from a simple http.response... The problem is, this way I can only stream 6 files at the same time. But the server is not using all the resources(cpu 10%, memory 10%) and it is a single core. After +/- 5 files I only get the loading page and the stream doesn't starts, only after some of them has completed.

This is not a limitation on the 1st server where I am downloading the files because using my browser for example I can download as many as I want. Am I doing something wrog or this is some limitation in node that I can change? Thanks

If your code is using the node.js core http module's http.Agent, it has an initial limit of 5 simultaneous outgoing connections to the same remote server. Try reading substack's rant in the hyperquest README for the details. But in short, try using a different module for your connections (I recommend superagent or hyperquest), or adjust the http Agent's maxSockets setting for the node core http module.