Skip to content

Instantly share code, notes, and snippets.

@zweite
Created March 11, 2017 03:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zweite/42308961ad0fe27adb339bfa1bfe200d to your computer and use it in GitHub Desktop.
Save zweite/42308961ad0fe27adb339bfa1bfe200d to your computer and use it in GitHub Desktop.
"use strict";
var url = require('url');
var port, server, service,
system = require('system');
var webpage = require('webpage');
function main() {
if (system.args.length !== 2) {
console.log('Usage: serverkeepalive.js <portnumber>');
phantom.exit(1);
} else {
port = system.args[1];
server = require('webserver').create();
service = server.listen(port, { keepAlive: true }, function (request, response) {
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
if (query.hasOwnProperty('url')) {
var query_url = decodeURIComponent(query['url'])
console.log(query_url)
browser_query(query_url)
}
var body = JSON.stringify(request, null, 4);
response.statusCode = 200;
response.headers = {
'Cache': 'no-cache',
'Content-Type': 'text/plain',
'Connection': 'Keep-Alive',
'Keep-Alive': 'timeout=5, max=100',
'Content-Length': body.length
};
response.write(body);
response.close();
});
if (service) {
console.log('Web server running on port ' + port);
} else {
console.log('Error: Could not create web server listening on port ' + port);
phantom.exit();
}
}
}
function browser_query(address) {
var page = webpage.create()
// page.settings.userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
// page.viewportSize = { width: 1920, height: 1080 }
page.onResourceRequested = function (req) {
console.log('requested: ' + JSON.stringify(req, undefined, 4));
};
page.onResourceReceived = function (res) {
console.log('received: ' + JSON.stringify(res, undefined, 4));
};
page.onLoadFinished = function() {
setTimeout(
function(){
page.render("123.png")
console.log("finished")
}, 5000)
//page.close()
}
t = Date.now();
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
} else {
t = Date.now() - t;
console.log('<a title="Loading" href="'+address+'">Loading</a> time ' + t + ' msec');
}
});
}
// run main
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment