michael@0: var fs = require('fs'); michael@0: var path = require('path'); michael@0: var http2 = require('..'); michael@0: michael@0: http2.globalAgent = new http2.Agent({ michael@0: log: require('../test/util').createLogger('client') michael@0: }); michael@0: michael@0: process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; michael@0: michael@0: // Sending the request michael@0: // It would be `var request = http2.get(process.argv.pop());` if we wouldn't care about plain mode michael@0: var options = require('url').parse(process.argv.pop()); michael@0: options.plain = Boolean(process.env.HTTP2_PLAIN); michael@0: var request = http2.request(options); michael@0: request.end(); michael@0: michael@0: // Receiving the response michael@0: request.on('response', function(response) { michael@0: response.pipe(process.stdout); michael@0: response.on('end', finish); michael@0: }); michael@0: michael@0: // Receiving push streams michael@0: request.on('push', function(pushRequest) { michael@0: var filename = path.join(__dirname, '/push-' + push_count); michael@0: push_count += 1; michael@0: console.error('Receiving pushed resource: ' + pushRequest.url + ' -> ' + filename); michael@0: pushRequest.on('response', function(pushResponse) { michael@0: pushResponse.pipe(fs.createWriteStream(filename)).on('finish', finish); michael@0: }); michael@0: }); michael@0: michael@0: // Quitting after both the response and the associated pushed resources have arrived michael@0: var push_count = 0; michael@0: var finished = 0; michael@0: function finish() { michael@0: finished += 1; michael@0: if (finished === (1 + push_count)) { michael@0: process.exit(); michael@0: } michael@0: }