http2.connect(authority[, options][, listener])


  • authority <string> | <URL> 要连接的远程 HTTP/2 服务器。此地址必须是最小的有效 URL 格式,包含 http://https:// 前缀、主机名以及端口号(如果使用非默认端口)。URL 中的用户信息(用户 ID 和密码)、路径、查询字符串和片段信息将被忽略。
  • options <Object>
    • maxDeflateDynamicTableSize <number> 设置用于压缩头字段的最大动态表大小。默认值: 4Kib
    • maxSettings <number> 设置每个 SETTINGS 帧的最大设置条目数。允许的最小值是 1默认值: 32
    • maxSessionMemory<number> 设置 Http2Session 允许使用的最大内存。该值以兆字节为单位,例如 1 表示 1 兆字节。允许的最小值为 1。这是基于额度的限制,已有的 Http2Stream 可能会导致超过该限制,但在超出限制时,新的 Http2Stream 实例将被拒绝。当前 Http2Stream 会话的数量、头部压缩表的当前内存使用量、待发送的数据以及未确认的 PINGSETTINGS 帧都会计入当前限制。默认值: 10
    • maxHeaderListPairs <number> 设置最大页眉条目数。这类似于 node:http 模块中的 server.maxHeadersCountrequest.maxHeadersCount。最小值为 1默认值: 128
    • maxOutstandingPings <number> 设置未确认 ping 的最大数量。默认值: 10
    • maxReservedRemoteStreams <number> 设置客户端在任意给定时间内可接受的最大保留推送流数量。一旦当前保留的推送流数量达到该限制,服务器发送的新推送流将被自动拒绝。允许的最小值为 0。允许的最大值为 232-1。负值将此选项设置为允许的最大值。默认值: 200
    • maxSendHeaderBlockLength <number> 设置序列化、压缩头块的最大允许大小。尝试发送超过此限制的头部时,将触发 'frameError' 事件,并且流将被关闭和销毁。
    • paddingStrategy <number> 用于确定 HEADERSDATA 帧应使用的填充量的策略。默认值:http2.constants.PADDING_STRATEGY_NONE。取值可以是以下之一:
      • http2.constants.PADDING_STRATEGY_NONE:未应用填充。
      • http2.constants.PADDING_STRATEGY_MAX:应用的最大填充量由内部实现决定。
      • http2.constants.PADDING_STRATEGY_ALIGNED:尝试应用足够的填充,以确保包括9字节头部在内的帧总长度是8的倍数。对于每一帧,允许的最大填充字节数由当前流量控制状态和设置决定。如果这个最大值小于为确保对齐所需的计算值,则使用最大值,并且帧的总长度不一定是8字节对齐的。
    • peerMaxConcurrentStreams <number> 设置远程节点的最大并发流数,就好像已经收到 SETTINGS 帧一样。如果远程节点为 maxConcurrentStreams 设置了自己的值,将会被覆盖。默认值: 100
    • protocol <string> 要连接的协议,如果未在 authority 中设置。值可以是 'http:''https:'默认值: 'https:'
    • settings <HTTP/2 Settings Object> 连接时发送给远程端的初始设置。
    • remoteCustomSettings <Array> 整数值数组决定了设置类型,这些类型包含在接收到的 remoteSettings 的 CustomSettings 属性中。有关允许的设置类型的更多信息,请参见 Http2Settings 对象的 CustomSettings 属性。
    • createConnection <Function> 一个可选回调函数,它接收传递给 connectURL 实例和 options 对象,并返回要用于此会话连接的任何 Duplex 流。
    • ...options <Object> 可以提供任何 net.connect()tls.connect() 选项。
    • unknownProtocolTimeout <number> 指定服务器在 'unknownProtocol' 事件触发时应等待的超时时间(以毫秒为单位)。如果在此时间内套接字尚未被销毁,服务器将销毁它。默认值: 10000
    • strictFieldWhitespaceValidation <boolean> 如果 true,则会根据 RFC-9113 对 HTTP/2 头字段名称和值启用严格的前导和尾随空白验证。默认值: true
  • listener <Function> 将被注册为 'connect' 事件的一次性监听器。
  • 返回:<ClientHttp2Session>

返回一个 ClientHttp2Session 实例。

🌐 Returns a ClientHttp2Session instance.

import { connect } from 'node:http2';
const client = connect('https://localhost:1234');

/* Use the client */

client.close();const http2 = require('node:http2');
const client = http2.connect('https://localhost:1234');

/* Use the client */

client.close();