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.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 |
---|
返回
- 用于链式调用的构建器