summaryrefslogtreecommitdiff
path: root/benchmark/static_http_server.js
blob: d5b0bf7c4de860edcd061bf5f1faa641b10d6f9c (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
45
46
47
48
var http = require("http");

var concurrency = 30;
var port = 12346;
var n = 7; // several orders of magnitude slower
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.write(body);
  res.close();
})
server.listen(port);

function responseListener (res) {
  res.addListener("end", function () {
    if (requests < n) {
      var req = res.client.request("/");
      req.addListener('response', responseListener);
      req.close();
      requests++;
    }

    if (++responses == n) {
      server.close();
    }
  });
}

for (var i = 0; i < concurrency; i++) {
  var client = http.createClient(port);
  client.id = i;
  var req = client.request("/");
  req.addListener('response', responseListener);
  req.close();
  requests++;
}