Skip to content

Instantly share code, notes, and snippets.

@nathanwdavis
Created February 15, 2012 16:57
Show Gist options
  • Save nathanwdavis/1837307 to your computer and use it in GitHub Desktop.
Save nathanwdavis/1837307 to your computer and use it in GitHub Desktop.
latency testing node service - just pass in a size param to specify n bytes to reply with. Ex: http://127.0.0.21:7777/?size=5120000 = 5meg response
//defaut settings
var DEFAULT_SIZE = 1000*1024,
DEFAULT_CHUNK_SIZE = 250*1024,
MAX_CHUNK_SIZE = 500*1024;
var http = require('http'),
url = require('url'),
buffer;
//build buffer to slice from for responses
buffer = new Buffer(MAX_CHUNK_SIZE);
buffer.fill(97);
//setup and start http server
var server = http.createServer(function(req, resp) {
var query = url.parse(req.url, true).query,
size = parseInt(query['size']) || DEFAULT_SIZE,
chunkSize = query['chunksize'] ? parseInt(query['chunksize']) : undefined,
bytesWritten = 0,
slice;
var headers = {'Content-Type': 'text/plain'};
if (!chunkSize) {
headers['Content-Length'] = size;
chunkSize = DEFAULT_CHUNK_SIZE;
}
resp.writeHead(200, headers);
while (size - bytesWritten > chunkSize) {
slice = buffer.slice(0, chunkSize);
resp.write(slice);
bytesWritten += slice.length;
}
slice = buffer.slice(0, size - bytesWritten);
resp.end(slice);
});
server.listen(7777);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment