response.socket


返回一个 Proxy 对象,该对象表现得像一个 net.Socket(或 tls.TLSSocket),但会根据 HTTP/2 逻辑应用 getter、setter 和方法。

【Returns a Proxy object that acts as a net.Socket (or tls.TLSSocket) but applies getters, setters, and methods based on HTTP/2 logic.】

destroyedreadablewritable 属性将从 response.stream 中获取并设置。

destroyemitendononce 方法将被调用在 response.stream 上。

setTimeout 方法将会在 response.stream.session 上被调用。

pausereadresumewrite 会抛出错误,错误代码为 ERR_HTTP2_NO_SOCKET_MANIPULATION。更多信息请参见 Http2Session 和套接字

所有其他交互将直接路由到套接字。

【All other interactions will be routed directly to the socket.】

import { createServer } from 'node:http2';
const server = createServer((req, res) => {
  const ip = req.socket.remoteAddress;
  const port = req.socket.remotePort;
  res.end(`Your IP address is ${ip} and your source port is ${port}.`);
}).listen(3000);const http2 = require('node:http2');
const server = http2.createServer((req, res) => {
  const ip = req.socket.remoteAddress;
  const port = req.socket.remotePort;
  res.end(`Your IP address is ${ip} and your source port is ${port}.`);
}).listen(3000);