Skip to content

Instantly share code, notes, and snippets.

@mygoare
Last active March 3, 2022 09:52
Show Gist options
  • Save mygoare/09ae45d360e8e447ab2ce92757e5f3e9 to your computer and use it in GitHub Desktop.
Save mygoare/09ae45d360e8e447ab2ce92757e5f3e9 to your computer and use it in GitHub Desktop.
httpServer setTimeout & timeout event
const http = require('http')
const port = 3000;
const server = http.createServer((req, res) => {
res.writeHead(200);
res.write('OK');
res.end();
});
// 如果超时3秒,就触发 timeout event
server.setTimeout(3000, () => {
console.log('socket destroyed due to timeout')
console.log(Date.now())
})
server.on('timeout', (socket) => {
// 手动关掉该socket
socket.end()
console.log('fire timeout..')
console.log(Date.now())
});
server.listen(port, (err) => {
if (err) {
return console.log('en error', err)
}
console.log(`server running on ${port}`)
})
const net = require('net');
const socket = net.connect({port: 3000});
// 发送不完整的 http 请求
socket.write('POST / HTTP/1.1\r\ncontent-length:1\r\n');
console.log(Date.now())
const start = Date.now();
socket.on('end', () => {
console.log(Date.now() - start)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment