Created
February 15, 2012 16:57
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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