|
@@ -3,17 +3,17 @@
|
|
|
// ---------------------------------------------------------------------------
|
|
|
// Customizable parameters:
|
|
|
|
|
|
-// Maximum interval between test attempts
|
|
|
-var TEST_INTERVAL_MAX = (60000 * 5);
|
|
|
+// Maximum interval between test attempts (actual timing is random % this)
|
|
|
+var TEST_INTERVAL_MAX = (60000 * 10);
|
|
|
|
|
|
// Test timeout in ms
|
|
|
var TEST_TIMEOUT = 60000;
|
|
|
|
|
|
-// Where should I contact to register and query a list of other test agents?
|
|
|
+// Where should I get other agents' IDs and POST results?
|
|
|
var SERVER_HOST = '174.136.102.178';
|
|
|
var SERVER_PORT = 18080;
|
|
|
|
|
|
-// Which port should agents use for their HTTP?
|
|
|
+// Which port do agents use to serve up test data to each other?
|
|
|
var AGENT_PORT = 18888;
|
|
|
|
|
|
// Payload size in bytes
|
|
@@ -181,93 +181,6 @@ function doTest()
|
|
|
submit.end();
|
|
|
};
|
|
|
|
|
|
-/*
|
|
|
-function performTestOnAllPeers(peers,callback)
|
|
|
-{
|
|
|
- var allResults = {};
|
|
|
- var allRequests = [];
|
|
|
- var timedOut = false;
|
|
|
- var endOfTestTimer = setTimeout(function() {
|
|
|
- timedOut = true;
|
|
|
- for(var x=0;x<allRequests.length;++x)
|
|
|
- allRequests[x].abort();
|
|
|
- },TEST_DURATION);
|
|
|
-
|
|
|
- async.each(peers,function(peer,next) {
|
|
|
- if (timedOut)
|
|
|
- return next(null);
|
|
|
- if (peer.length !== 32)
|
|
|
- return next(null);
|
|
|
-
|
|
|
- var connectionStartTime = Date.now();
|
|
|
- allResults[peer] = {
|
|
|
- start: connectionStartTime,
|
|
|
- end: 0,
|
|
|
- error: null,
|
|
|
- timedOut: false,
|
|
|
- bytes: 0
|
|
|
- };
|
|
|
-
|
|
|
- allRequests.push(http.get({
|
|
|
- host: agentIdToIp(peer),
|
|
|
- port: AGENT_PORT,
|
|
|
- path: '/'
|
|
|
- },function(res) {
|
|
|
- var bytes = 0;
|
|
|
- res.on('data',function(chunk) {
|
|
|
- bytes += chunk.length;
|
|
|
- });
|
|
|
- res.on('end',function() {
|
|
|
- allResults[peer] = {
|
|
|
- start: connectionStartTime,
|
|
|
- end: Date.now(),
|
|
|
- error: null,
|
|
|
- timedOut: timedOut,
|
|
|
- bytes: bytes
|
|
|
- };
|
|
|
- return next(null);
|
|
|
- });
|
|
|
- }).on('error',function(e) {
|
|
|
- allResults[peer] = {
|
|
|
- start: connectionStartTime,
|
|
|
- end: Date.now(),
|
|
|
- error: e.toString(),
|
|
|
- timedOut: timedOut,
|
|
|
- bytes: 0
|
|
|
- };
|
|
|
- return next(null);
|
|
|
- }));
|
|
|
- },function(err) {
|
|
|
- if (!timedOut)
|
|
|
- clearTimeout(endOfTestTimer);
|
|
|
- return callback(allResults);
|
|
|
- });
|
|
|
-};
|
|
|
-
|
|
|
-function doTestsAndReport()
|
|
|
-{
|
|
|
- registerAndGetPeers(function(err,peers) {
|
|
|
- if (err) {
|
|
|
- console.error('WARNING: skipping test: unable to contact or query server: '+err.toString());
|
|
|
- } else {
|
|
|
- performTestOnAllPeers(peers,function(results) {
|
|
|
- var submit = http.request({
|
|
|
- host: SERVER_HOST,
|
|
|
- port: SERVER_PORT,
|
|
|
- path: '/'+thisAgentId,
|
|
|
- method: 'POST'
|
|
|
- },function(res) {
|
|
|
- }).on('error',function(e) {
|
|
|
- console.error('WARNING: unable to submit results to server: '+err.toString());
|
|
|
- });
|
|
|
- submit.write(JSON.stringify(results));
|
|
|
- submit.end();
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
-};
|
|
|
-*/
|
|
|
-
|
|
|
// Agents just serve up a test payload
|
|
|
app.get('/',function(req,res) { return res.status(200).send(payload); });
|
|
|
|