📜  Node.js Http2ServerResponse.setTimeout() 方法(1)

📅  最后修改于: 2023-12-03 14:44:39.453000             🧑  作者: Mango

Node.js Http2ServerResponse.setTimeout() 方法

Node.js中Http2ServerResponse.setTimeout()方法用于设置在响应发送之前等待客户端请求的超时时间。如果超时时间已过,则认为客户端请求无响应。

语法

Http2ServerResponse.setTimeout(msecs, callback)

参数
  • 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对象中设置超时时间。这在需要自动关闭未及时响应的请求时非常有用。