1'use strict'; 2 3const common = require('../common'); 4const http = require('http'); 5const net = require('net'); 6const assert = require('assert'); 7 8function request(socket) { 9 socket.write('GET / HTTP/1.1\r\n'); 10 socket.write('Connection: keep-alive\r\n'); 11 socket.write('\r\n\r\n'); 12} 13 14const server = http.createServer(common.mustCall((req, res) => { 15 res.end('ok'); 16})); 17 18server.on('dropRequest', common.mustCall((request, socket) => { 19 assert.strictEqual(request instanceof http.IncomingMessage, true); 20 assert.strictEqual(socket instanceof net.Socket, true); 21 server.close(); 22})); 23 24server.listen(0, common.mustCall(() => { 25 const socket = net.connect(server.address().port); 26 socket.on('connect', common.mustCall(() => { 27 request(socket); 28 request(socket); 29 })); 30 socket.on('data', common.mustCallAtLeast()); 31 socket.on('close', common.mustCall()); 32})); 33 34server.maxRequestsPerSocket = 1; 35