mirror of
https://github.com/Feodor2/Mypal68.git
synced 2025-06-19 15:25:50 -04:00
49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
var fs = require('fs');
|
|
var path = require('path');
|
|
var http2 = require('..');
|
|
var urlParse = require('url').parse;
|
|
|
|
// Setting the global logger (optional)
|
|
http2.globalAgent = new http2.Agent({
|
|
rejectUnauthorized: true,
|
|
log: require('../test/util').createLogger('client')
|
|
});
|
|
|
|
// Sending the request
|
|
var url = process.argv.pop();
|
|
var options = urlParse(url);
|
|
|
|
// Optionally verify self-signed certificates.
|
|
if (options.hostname == 'localhost') {
|
|
options.key = fs.readFileSync(path.join(__dirname, '/localhost.key'));
|
|
options.ca = fs.readFileSync(path.join(__dirname, '/localhost.crt'));
|
|
}
|
|
|
|
var request = process.env.HTTP2_PLAIN ? http2.raw.get(options) : http2.get(options);
|
|
|
|
// Receiving the response
|
|
request.on('response', function(response) {
|
|
response.pipe(process.stdout);
|
|
response.on('end', finish);
|
|
});
|
|
|
|
// Receiving push streams
|
|
request.on('push', function(pushRequest) {
|
|
var filename = path.join(__dirname, '/push-' + push_count);
|
|
push_count += 1;
|
|
console.error('Receiving pushed resource: ' + pushRequest.url + ' -> ' + filename);
|
|
pushRequest.on('response', function(pushResponse) {
|
|
pushResponse.pipe(fs.createWriteStream(filename)).on('finish', finish);
|
|
});
|
|
});
|
|
|
|
// Quitting after both the response and the associated pushed resources have arrived
|
|
var push_count = 0;
|
|
var finished = 0;
|
|
function finish() {
|
|
finished += 1;
|
|
if (finished === (1 + push_count)) {
|
|
process.exit();
|
|
}
|
|
}
|