1'use strict'; 2const common = require('../common'); 3if (!common.hasCrypto) 4 common.skip('missing crypto'); 5 6const fixtures = require('../common/fixtures'); 7const https = require('https'); 8 9const options = { 10 key: fixtures.readKey('agent1-key.pem'), 11 cert: fixtures.readKey('agent1-cert.pem') 12}; 13 14const connections = {}; 15 16const server = https.createServer(options, (req, res) => { 17 const interval = setInterval(() => { 18 res.write('data'); 19 }, 1000); 20 interval.unref(); 21}); 22 23server.on('connection', (connection) => { 24 const key = `${connection.remoteAddress}:${connection.remotePort}`; 25 connection.on('close', () => { 26 delete connections[key]; 27 }); 28 connections[key] = connection; 29}); 30 31function shutdown() { 32 server.close(common.mustSucceed()); 33 34 for (const key in connections) { 35 connections[key].destroy(); 36 delete connections[key]; 37 } 38} 39 40server.listen(0, () => { 41 const requestOptions = { 42 hostname: '127.0.0.1', 43 port: server.address().port, 44 path: '/', 45 method: 'GET', 46 rejectUnauthorized: false 47 }; 48 49 const req = https.request(requestOptions, (res) => { 50 res.on('data', () => {}); 51 setImmediate(shutdown); 52 }); 53 req.end(); 54}); 55