📅  最后修改于: 2023-12-03 14:44:39.453000             🧑  作者: Mango
Node.js中Http2ServerResponse.setTimeout()方法用于设置在响应发送之前等待客户端请求的超时时间。如果超时时间已过,则认为客户端请求无响应。
Http2ServerResponse.setTimeout(msecs, callback)
无返回值。
以下示例展示了如何使用Http2ServerResponse.setTimeout()方法在5秒钟后自动关闭响应:
const http2 = require('http2');
const port = 3000;
const server = http2.createSecureServer({
cert: 'localhost-cert.pem',
key: 'localhost-privkey.pem'
});
server.on('stream', (stream, headers) => {
stream.respond({
'content-type': 'text/html',
':status': 200
});
stream.write('<html><body>');
stream.write('<h1>Hello, World!</h1>');
stream.write('</body></html>');
stream.end();
stream.setTimeout(5000, () => {
stream.close();
});
});
server.listen(port, () => {
console.log(`Server running at https://localhost:${port}/`);
});
在上述示例中,我们创建了一个Http2Server对象,并使用createSecureServer()方法创建了一个安全的Http2服务器。然后,我们在'stream'事件中处理每个请求,并使用stream.respond()方法设置响应标头和状态码。我们还向客户端写入一些HTML内容,并在发送完响应后使用stream.end()方法关闭响应。最后,我们使用stream.setTimeout()方法设置了超时时间为5秒,并在超时时关闭响应。
Http2ServerResponse.setTimeout()方法可用于在Node.js Http2ServerResponse对象中设置超时时间。这在需要自动关闭未及时响应的请求时非常有用。