📌  相关文章
📜  Node.js Http2ServerResponse.stream 方法(1)

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

Node.js Http2ServerResponse.stream 方法

Node.js中的Http2ServerResponse类提供了多个方法,其中一个重要的方法是stream。此方法允许使用HTTP/2协议创建一个可写的流,可用于发送响应正文数据。

语法
Http2ServerResponse.stream(options, [callback])

该方法使用以下参数:

  • options:一个可选的配置对象(详见下文)。
  • callback:可选回调函数,当可写流准备就绪时调用。

该方法返回一个可写流。

配置选项

流选项通过 options 对象传递给 Http2ServerResponse.stream()

  • endStream:当设置为 true 时,流将在发送完所有数据后自动关闭。
  • weight:流的权重,每一个请求都有一个相对权重,越大的权重优先级越高。
const options = {
  endStream: true,
  weight: 10
};
实例

下面是一个使用Http2ServerResponse.stream方法发送响应正文的示例。此示例创建一个HTTP/2服务器,监听3000端口,当请求到达时,将Hello World作为响应正文发送回客户端。

const http2 = require('http2');
const fs = require('fs');

http2.createSecureServer({
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.crt')
}, (req, res) => {
  // 创建可写流
  const stream = res.stream({ endStream: true });
  // 发送响应正文数据
  stream.write('Hello World');
}).listen(3000);

第一个参数是HTTPS或HTTP/2配置,第二个参数是一个接收请求、并发送相应的回调函数。在该回调函数中,我们创建了一个可写流,并使用stream.write()方法将Hello World发送回客户端。在本例中,由于我们设置了 endStream 选项,当数据被发送后,可写流将自动关闭。

参考