summaryrefslogtreecommitdiff
path: root/benchmark/static_http_server.js
blob: b3a83785e3792fe6fdf5848810d2c62d1b13cfaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
var http = require('http');

var concurrency = 30;
var port = 12346;
var n = 700;
var bytes = 1024*5;

var requests = 0;
var responses = 0;

var body = '';
for (var i = 0; i < bytes; i++) {
  body += 'C';
}

var server = http.createServer(function(req, res) {
  res.writeHead(200, {
    'Content-Type': 'text/plain',
    'Content-Length': body.length
  });
  res.end(body);
})

server.listen(port, function() {
  var agent = new http.Agent();
  agent.maxSockets = concurrency;

  for (var i = 0; i < n; i++) {
    var req = http.get({
      port:  port,
      path:  '/',
      agent: agent
    }, function(res) {
      res.resume();
      res.on('end', function() {
        if (++responses === n) {
          server.close();
        }
      });
    });
    req.id = i;
    requests++;
  }
});