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

📅  最后修改于: 2023-12-03 15:17:54.963000             🧑  作者: Mango

Node.js http2stream.setTimeout() 方法

简介

http2stream.setTimeout() 方法是 Node.js 中 HTTP/2 模块提供的方法,用于设置 HTTP/2 流的超时时间。如果设定的时间内未收到数据,则会关闭该 HTTP/2 流。

语法
http2stream.setTimeout(msecs[, callback])

参数说明:

  • msecs: 超时时间,单位为毫秒。
  • callback: 可选参数,当超时后触发的回调函数。
返回值

该方法没有返回值。

示例
const http2 = require('http2');

const client = http2.connect('http://localhost:8080');
const stream = client.request({
  ':path': '/'
});

stream.setTimeout(5000, () => {
  console.log('Stream Timed Out');
  stream.close();
});

stream.on('timeout', () => {
  console.log('Stream Timed Out');
  stream.close();
});

stream.on('end', () => {
  console.log('Stream Ended');
});

stream.on('error', (err) => {
  console.error(err);
});

在上述代码中,我们建立了一个 HTTP/2 连接,并创建了一个请求流。然后通过 stream.setTimeout() 方法设定了该请求流的超时时间为 5 秒。当超时后,会触发回调函数或是 'timeout' 事件,并调用 stream.close() 方法关闭该流。

注意事项
  • http2stream.setTimeout() 中设置的超时时间的单位为毫秒,如果需要设置的是秒,则需要将毫秒转化为秒。
  • 超时后,会关闭该 HTTP/2 流,因此需要在触发回调函数或事件后,手动关闭该流。
  • 超时事件需要监听 'timeout' 事件和设置回调函数,否则超时后无法得到通知。
参考链接