var WebSocketServer = require('ws').Server;
var https = require('https');
var keepaliveagent = require('keep-alive-agent');
var util = require('util');
var PHPUnserialize = require('php-unserialize');
var Promise = require('promise');
var global_websocket_server = new WebSocketServer({port: 8081});
function handle_chunks(request, callback)
{
var data = '';
request.on('data', function (chunk) {
data += chunk;
});
request.on('end', function () {
callback(data);
});
}
var shopify_agent = new keepaliveagent.Secure();
var first_connection_options = {
hostname: 'foo',
port: 443,
path: '/',
method: 'HEAD',
auth: 'foo',
agent: shopify_agent
};
https.get(first_connection_options, function (res) {
console.log(res.statusCode);
});
global_websocket_server.on('connection', function (websocket_client) {
websocket_client.on('message', function (data, flags) {
var options = {
hostname: 'foo',
port: 443,
path: '/admin/products.json',
auth: 'foo',
agent: shopify_agent
};
console.time('request');
https.get(options, function (res) {
handle_chunks(res, function (data) {
console.timeEnd('request');
console.log(data.length);
/*websocket_client.send(data, function (e) {
if (e != undefined)
console.log("sent", e);
})*/
});
}).on('error', function (e) {
console.log('erorr', e.message);
});
console.log('message', data);
});
});
dmFyIFdlYlNvY2tldFNlcnZlciA9IHJlcXVpcmUoJ3dzJykuU2VydmVyOwp2YXIgaHR0cHMgPSByZXF1aXJlKCdodHRwcycpOwp2YXIga2VlcGFsaXZlYWdlbnQgPSByZXF1aXJlKCdrZWVwLWFsaXZlLWFnZW50Jyk7CnZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpOwp2YXIgUEhQVW5zZXJpYWxpemUgPSByZXF1aXJlKCdwaHAtdW5zZXJpYWxpemUnKTsKdmFyIFByb21pc2UgPSByZXF1aXJlKCdwcm9taXNlJyk7Cgp2YXIgZ2xvYmFsX3dlYnNvY2tldF9zZXJ2ZXIgPSBuZXcgV2ViU29ja2V0U2VydmVyKHtwb3J0OiA4MDgxfSk7CgpmdW5jdGlvbiBoYW5kbGVfY2h1bmtzKHJlcXVlc3QsIGNhbGxiYWNrKQp7Cgl2YXIgZGF0YSA9ICcnOwoKCXJlcXVlc3Qub24oJ2RhdGEnLCBmdW5jdGlvbiAoY2h1bmspIHsKCQlkYXRhICs9IGNodW5rOwoJfSk7CgoJcmVxdWVzdC5vbignZW5kJywgZnVuY3Rpb24gKCkgewoJCWNhbGxiYWNrKGRhdGEpOwoJfSk7Cn0KCnZhciBzaG9waWZ5X2FnZW50ID0gbmV3IGtlZXBhbGl2ZWFnZW50LlNlY3VyZSgpOwoKdmFyIGZpcnN0X2Nvbm5lY3Rpb25fb3B0aW9ucyA9IHsKCWhvc3RuYW1lOiAnZm9vJywKCXBvcnQ6IDQ0MywKCXBhdGg6ICcvJywKCW1ldGhvZDogJ0hFQUQnLAoJYXV0aDogJ2ZvbycsCglhZ2VudDogc2hvcGlmeV9hZ2VudAp9OwoKaHR0cHMuZ2V0KGZpcnN0X2Nvbm5lY3Rpb25fb3B0aW9ucywgZnVuY3Rpb24gKHJlcykgewoJY29uc29sZS5sb2cocmVzLnN0YXR1c0NvZGUpOwp9KTsKCmdsb2JhbF93ZWJzb2NrZXRfc2VydmVyLm9uKCdjb25uZWN0aW9uJywgZnVuY3Rpb24gKHdlYnNvY2tldF9jbGllbnQpIHsKCXdlYnNvY2tldF9jbGllbnQub24oJ21lc3NhZ2UnLCBmdW5jdGlvbiAoZGF0YSwgZmxhZ3MpIHsKCQl2YXIgb3B0aW9ucyA9IHsKCQkJaG9zdG5hbWU6ICdmb28nLAoJCQlwb3J0OiA0NDMsCgkJCXBhdGg6ICcvYWRtaW4vcHJvZHVjdHMuanNvbicsCgkJCWF1dGg6ICdmb28nLAoJCQlhZ2VudDogc2hvcGlmeV9hZ2VudAoJCX07CgoJCWNvbnNvbGUudGltZSgncmVxdWVzdCcpOwoJCWh0dHBzLmdldChvcHRpb25zLCBmdW5jdGlvbiAocmVzKSB7CgkJCWhhbmRsZV9jaHVua3MocmVzLCBmdW5jdGlvbiAoZGF0YSkgewoJCQkJY29uc29sZS50aW1lRW5kKCdyZXF1ZXN0Jyk7CgkJCQljb25zb2xlLmxvZyhkYXRhLmxlbmd0aCk7CgkJCQkvKndlYnNvY2tldF9jbGllbnQuc2VuZChkYXRhLCBmdW5jdGlvbiAoZSkgewoJCQkJCQoJCQkJCWlmIChlICE9IHVuZGVmaW5lZCkKCQkJCQkJY29uc29sZS5sb2coInNlbnQiLCBlKTsKCQkJCX0pKi8KCQkJfSk7CgkJfSkub24oJ2Vycm9yJywgZnVuY3Rpb24gKGUpIHsKCQkJY29uc29sZS5sb2coJ2Vyb3JyJywgZS5tZXNzYWdlKTsKCQl9KTsKCgkJY29uc29sZS5sb2coJ21lc3NhZ2UnLCBkYXRhKTsKCX0pOwp9KTs=