當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js Http2Session 'stream'事件用法及代碼示例


事件:'stream'

添加於:v8.4.0

參數

'stream' 事件在創建新的 Http2Stream 時發出。

const http2 = require('node:http2');
session.on('stream', (stream, headers, flags) => {
  const method = headers[':method'];
  const path = headers[':path'];
  // ...
  stream.respond({
    ':status': 200,
    'content-type': 'text/plain; charset=utf-8'
  });
  stream.write('hello ');
  stream.end('world');
});

在服務器端,用戶代碼通常不會直接偵聽此事件,而是為 net.Servertls.Server 實例分別由 http2.createServer()http2.createSecureServer() 返回的 'stream' 事件注冊一個處理程序,如下例所示:

const http2 = require('node:http2');

// Create an unencrypted HTTP/2 server
const server = http2.createServer();

server.on('stream', (stream, headers) => {
  stream.respond({
    'content-type': 'text/html; charset=utf-8',
    ':status': 200
  });
  stream.on('error', (error) => console.error(error));
  stream.end('<h1>Hello World</h1>');
});

server.listen(80);

即使 HTTP/2 流和網絡套接字不是 1:1 對應的,網絡錯誤也會破壞每個單獨的流,並且必須在流級別進行處理,如上所示。

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品  'stream'事件。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。