QuicOptions.Builder

public static class QuicOptions.Builder extends Object

QuicOptions 的构建器。

公共方法摘要

QuicOptions.Builder
addAllowedQuicHost(String quicHost)
将主机添加到 QUIC 允许列表。
QuicOptions.Builder
addClientConnectionOption(String clientConnectionOption)
添加一个 QUIC 标签,用于在 QUIC 握手的连接选项中发送,该标签仅影响客户端。
QuicOptions.Builder
addConnectionOption(String connectionOption)
添加一个 QUIC 标签,用于在 QUIC 握手的连接选项中发送。
QuicOptions.Builder
addEnabledQuicVersion(String enabledQuicVersion)
将一个 QUIC 版本添加到要启用的 QUIC 版本列表中。
QuicOptions.Builder
addExtraQuicheFlag(String extraQuicheFlag)
设置任意 QUICHE 标志。
QuicOptions
build()
根据此构建器中的值,创建并返回最终的 QuicOptions 实例。
QuicOptions.Builder
closeSessionsOnIpChange(boolean closeSessionsOnIpChange)
设置是否应在 IP 地址更改时关闭 QUIC 会话。
QuicOptions.Builder
delayJobsWithAvailableSpdySession(boolean delayJobsWithAvailableSpdySession)
设置 Cronet 是否应等待主路径(通常是 QUIC)就绪,即使存在可立即就绪的辅助路径(SPDY / HTTP2)来访问服务器。
QuicOptions.Builder
enableTlsZeroRtt(boolean enableTlsZeroRtt)
设置是否应启用带 0-RTT 的 TLS。
QuicOptions.Builder
goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)
设置是否应在 IP 地址更改时对 QUIC 会话执行 goaway 操作。
QuicOptions.Builder
increaseBrokenServicePeriodExponentially(boolean increaseBrokenServicePeriodExponentially)
设置损坏服务器周期是否应按指数级增长。
QuicOptions.Builder
retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)
设置是否应对因 QUIC 协议错误而失败的请求进行重试,且不使用任何 alt-svc 服务器。
QuicOptions.Builder
setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)
设置连接 SSL 握手的超时时间。
QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)
设置 HTTP 请求之外使用的用户代理(例如,用于 QUIC 握手)。
QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)
设置连接的最大空闲时间。
QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)
设置应在内存中保留多少服务器配置(元数据,例如 alt svc 列表、是否支持 QUIC 等)。
QuicOptions.Builder
setInitialBrokenServicePeriodSeconds(long initialBrokenServicePeriodSeconds)
设置初始周期,如果发现服务器的 QUIC 支持已损坏,Cronet 在此周期内将不再尝试使用 QUIC 连接该服务器。
QuicOptions.Builder
setPreCryptoHandshakeIdleTimeoutSeconds(long preCryptoHandshakeIdleTimeoutSeconds)
设置尚未完成 SSL 握手的连接的最大空闲时间。
QuicOptions.Builder
setRetransmittableOnWireTimeoutMillis(long retransmittableOnWireTimeoutMillis)
设置线路上数据包之间的最大期望时间。

继承的方法摘要

公共方法

public QuicOptions.Builder addAllowedQuicHost (String quicHost)

将主机添加到 QUIC 允许列表。

如果未指定主机,则按主机允许列表功能将被禁用。否则,Cronet 仅在与允许列表上的主机通信时使用 QUIC。

参数
quicHost
返回
  • 用于链式调用的构建器

public QuicOptions.Builder addClientConnectionOption (String clientConnectionOption)

添加一个 QUIC 标签,用于在 QUIC 握手的连接选项中发送,该标签仅影响客户端。

有关更多详细信息,请参阅 addConnectionOption(String)

参数
clientConnectionOption

public QuicOptions.Builder addConnectionOption (String connectionOption)

添加一个 QUIC 标签,用于在 QUIC 握手的连接选项中发送。

QUIC 标签应表示为最多四个字母的字符串(例如,NBHD)。

由于 QUIC 标签正在积极开发中,且其中一些标签仅与服务器相关,Cronet 不会将所有支持的 QUIC 标志的完整列表作为 API 的一部分进行维护。QUICHE(Cronet 和 Google 服务器使用的 QUIC 实现)支持的标志可在此处找到。

参数
connectionOption
返回
  • 用于链式调用的构建器

public QuicOptions.Builder addEnabledQuicVersion (String enabledQuicVersion)

将一个 QUIC 版本添加到要启用的 QUIC 版本列表中。

如果未指定版本,Cronet 将使用默认 QUIC 版本列表。

版本格式由 QUICHE 指定。除了过滤掉已知已废弃的值之外,Cronet 不会以任何方式处理这些版本,而只是将它们传递给 QUICHE。

参数
enabledQuicVersion
返回
  • 用于链式调用的构建器

public QuicOptions.Builder addExtraQuicheFlag (String extraQuicheFlag)

设置任意 QUICHE 标志。标志应以 FLAG_NAME=FLAG_VALUE 格式传递。有关完整的标志列表,请参阅 QUICHE 代码库

参数
extraQuicheFlag
返回
  • 用于链式调用的构建器

public QuicOptions build ()

根据此构建器中的值,创建并返回最终的 QuicOptions 实例。

public QuicOptions.Builder closeSessionsOnIpChange (boolean closeSessionsOnIpChange)

设置是否应在 IP 地址更改时关闭 QUIC 会话。

请勿与连接迁移(使用 ConnectionMigrationOptions 配置)结合使用。

参数
closeSessionsOnIpChange
返回
  • 用于链式调用的构建器

public QuicOptions.Builder delayJobsWithAvailableSpdySession (boolean delayJobsWithAvailableSpdySession)

设置 Cronet 是否应等待主路径(通常是 QUIC)就绪,即使存在可立即就绪的辅助路径(SPDY / HTTP2)来访问服务器。

参数
delayJobsWithAvailableSpdySession
返回
  • 用于链式调用的构建器

public QuicOptions.Builder enableTlsZeroRtt (boolean enableTlsZeroRtt)

设置是否应启用带 0-RTT 的 TLS。

0-RTT 是一种性能优化,可避免在恢复到已知服务器的连接时产生额外的往返延迟。

参数
enableTlsZeroRtt
返回
  • 用于链式调用的构建器

public QuicOptions.Builder goawaySessionsOnIpChange (boolean goawaySessionsOnIpChange)

设置是否应在 IP 地址更改时对 QUIC 会话执行 goaway 操作。

请勿与连接迁移(使用 ConnectionMigrationOptions 配置)结合使用。

参数
goawaySessionsOnIpChange
返回
  • 用于链式调用的构建器

public QuicOptions.Builder increaseBrokenServicePeriodExponentially (boolean increaseBrokenServicePeriodExponentially)

设置损坏服务器周期是否应按指数级增长。

如果设置为 true,则初始延迟(可通过 setInitialBrokenServicePeriodSeconds(long) 配置)将按指数级缩放用于后续重试 (SCALING_FACTOR^NUM_TRIES * delay)。如果为 false,延迟将线性缩放 (SCALING_FACTOR * NUM_TRIES * delay)。

参数
increaseBrokenServicePeriodExponentially
返回
  • 用于链式调用的构建器

public QuicOptions.Builder retryWithoutAltSvcOnQuicErrors (boolean retryWithoutAltSvcOnQuicErrors)

设置是否应对因 QUIC 协议错误而失败的请求进行重试,且不使用任何 alt-svc 服务器。

参数
retryWithoutAltSvcOnQuicErrors
返回
  • 用于链式调用的构建器

public QuicOptions.Builder setCryptoHandshakeTimeoutSeconds (long cryptoHandshakeTimeoutSeconds)

设置连接 SSL 握手的超时时间。

参数
cryptoHandshakeTimeoutSeconds
返回
  • 用于链式调用的构建器

public QuicOptions.Builder setHandshakeUserAgent (String handshakeUserAgent)

设置 HTTP 请求之外使用的用户代理(例如,用于 QUIC 握手)。

要为 HTTP 请求设置默认用户代理,请改用 CronetEngine.Builder.setUserAgent(String)

参数
handshakeUserAgent
返回
  • 用于链式调用的构建器

public QuicOptions.Builder setIdleConnectionTimeoutSeconds (long idleConnectionTimeoutSeconds)

设置连接的最大空闲时间。TODO 对于空闲时间过长的连接会发生什么?

参数
idleConnectionTimeoutSeconds
返回
  • 用于链式调用的构建器

public QuicOptions.Builder setInMemoryServerConfigsCacheSize (int inMemoryServerConfigsCacheSize)

设置应在内存中保留多少服务器配置(元数据,例如 alt svc 列表、是否支持 QUIC 等)。

如果设置了存储路径(CronetEngine.Builder.setStoragePath(String)),Cronet 也将在磁盘上持久化服务器配置。

参数
inMemoryServerConfigsCacheSize
返回
  • 用于链式调用的构建器

public QuicOptions.Builder setInitialBrokenServicePeriodSeconds (long initialBrokenServicePeriodSeconds)

设置初始周期,如果发现服务器的 QUIC 支持已损坏,Cronet 在此周期内将不再尝试使用 QUIC 连接该服务器。

一旦 Cronet 检测到服务器通告支持 QUIC 但实际上并不支持,它就会将服务器标记为损坏,并在一段时间内不再尝试使用 QUIC 与该服务器通信。过了这个时间点,Cronet 会再次尝试使用 QUIC。这是为了平衡短期利益(如果服务器损坏,尝试 QUIC 是浪费资源)和长期利益(损坏可能是临时的,使用 QUIC 通常是有益的)。

每次连续重试失败,延迟都会增加。有关详细信息,请参阅 increaseBrokenServicePeriodExponentially(boolean)

参数
initialBrokenServicePeriodSeconds
返回
  • 用于链式调用的构建器

public QuicOptions.Builder setPreCryptoHandshakeIdleTimeoutSeconds (long preCryptoHandshakeIdleTimeoutSeconds)

设置尚未完成 SSL 握手的连接的最大空闲时间。

参数
preCryptoHandshakeIdleTimeoutSeconds
返回
  • 用于链式调用的构建器

public QuicOptions.Builder setRetransmittableOnWireTimeoutMillis (long retransmittableOnWireTimeoutMillis)

设置线路上数据包之间的最大期望时间。

当超出线路可重传时间时,Cronet 将使用人工流量探测网络质量。较小的超时时间通常会更快地发现损坏或降级的路径,但也会增加资源(电池、数据)的使用。

参数
retransmittableOnWireTimeoutMillis
返回
  • 用于链式调用的构建器