📅  最后修改于: 2023-12-03 15:17:54.963000             🧑  作者: Mango
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()
中设置的超时时间的单位为毫秒,如果需要设置的是秒,则需要将毫秒转化为秒。