QuicOptions
的 Builder。
公共方法摘要
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()
基于此 builder 中的值,创建并返回最终的
QuicOptions 实例。 |
QuicOptions.Builder |
closeSessionsOnIpChange(boolean closeSessionsOnIpChange)
设置是否在 IP 地址更改时关闭 QUIC 会话。
|
QuicOptions.Builder |
delayJobsWithAvailableSpdySession(boolean delayJobsWithAvailableSpdySession)
设置即使存在可立即就绪的备用路径(SPDY / HTTP2),Cronet 是否应该等待主要路径(通常是 QUIC)准备就绪。
|
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 |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder addClientConnectionOption (String clientConnectionOption)
添加一个 QUIC 标签,用于在 QUIC 握手的连接选项中发送,该标签仅影响客户端。
有关更多详细信息,请参阅 addConnectionOption(String)
。
参数
clientConnectionOption |
---|
public QuicOptions.Builder addConnectionOption (String connectionOption)
添加一个 QUIC 标签,用于在 QUIC 握手的连接选项中发送。
QUIC 标签应以最长四个字母的字符串形式呈现(例如,NBHD
)。
由于 QUIC 标签正处于积极开发中,并且有些标签仅与服务器相关,Cronet 不会尝试维护 API 中所有支持的 QUIC 标志的完整列表。这些标志。QUICHE(Cronet 和 Google 服务器使用的 QUIC 实现)支持的标志可以在此处找到。
参数
connectionOption |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder addEnabledQuicVersion (String enabledQuicVersion)
将一个 QUIC 版本添加到要启用的 QUIC 版本列表中。
如果未指定版本,Cronet 将使用默认 QUIC 版本列表。
版本格式由 QUICHE 指定。除了过滤掉已知已过期的值外,Cronet 不会以任何方式处理版本,只是将它们传递给 QUICHE。
参数
enabledQuicVersion |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder addExtraQuicheFlag (String extraQuicheFlag)
设置任意 QUICHE 标志。标志应以 FLAG_NAME=FLAG_VALUE
格式传递。有关标志的完整列表,请参阅 QUICHE 代码库。
参数
extraQuicheFlag |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder closeSessionsOnIpChange (boolean closeSessionsOnIpChange)
设置是否在 IP 地址更改时关闭 QUIC 会话。
请勿与连接迁移(使用 ConnectionMigrationOptions
配置)结合使用。
参数
closeSessionsOnIpChange |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder delayJobsWithAvailableSpdySession (boolean delayJobsWithAvailableSpdySession)
设置即使存在可立即就绪的备用路径(SPDY / HTTP2),Cronet 是否应该等待主要路径(通常是 QUIC)准备就绪。
参数
delayJobsWithAvailableSpdySession |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder enableTlsZeroRtt (boolean enableTlsZeroRtt)
设置是否启用带有 0-RTT 的 TLS。
0-RTT 是一种性能优化,可在恢复与已知服务器的连接时避免额外的往返。
参数
enableTlsZeroRtt |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder goawaySessionsOnIpChange (boolean goawaySessionsOnIpChange)
设置是否在 IP 地址更改时对 QUIC 会话执行 goaway。
请勿与连接迁移(使用 ConnectionMigrationOptions
配置)结合使用。
参数
goawaySessionsOnIpChange |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder increaseBrokenServicePeriodExponentially (boolean increaseBrokenServicePeriodExponentially)
设置损坏服务器周期的时长是否应呈指数级增长。
如果设置为 true,则初始延迟(可通过 setInitialBrokenServicePeriodSeconds(long)
配置)将针对后续重试呈指数级缩放(缩放因子^尝试次数 * 延迟
)。如果为 false,则延迟将呈线性缩放(缩放因子 * 尝试次数 * 延迟)。
参数
increaseBrokenServicePeriodExponentially |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder retryWithoutAltSvcOnQuicErrors (boolean retryWithoutAltSvcOnQuicErrors)
设置是否在 QUIC 协议错误导致请求失败时,不使用任何 alt-svc
服务器重试请求。
参数
retryWithoutAltSvcOnQuicErrors |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder setCryptoHandshakeTimeoutSeconds (long cryptoHandshakeTimeoutSeconds)
设置连接 SSL 握手的超时时间。
参数
cryptoHandshakeTimeoutSeconds |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder setHandshakeUserAgent (String handshakeUserAgent)
设置用于 HTTP 请求之外(例如 QUIC 握手)的用户代理。
要设置 HTTP 请求的默认用户代理,请改用 CronetEngine.Builder.setUserAgent(String)
。
参数
handshakeUserAgent |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder setIdleConnectionTimeoutSeconds (long idleConnectionTimeoutSeconds)
设置连接的最大空闲时间。TODO 长时间空闲的连接会怎样?
参数
idleConnectionTimeoutSeconds |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder setInMemoryServerConfigsCacheSize (int inMemoryServerConfigsCacheSize)
设置应在内存中保留的服务器配置(元数据,例如 alt svc 列表,是否支持 QUIC 等)数量。
如果设置了存储路径(CronetEngine.Builder.setStoragePath(String)
),Cronet 也会将服务器配置持久化到磁盘。
参数
inMemoryServerConfigsCacheSize |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder setInitialBrokenServicePeriodSeconds (long initialBrokenServicePeriodSeconds)
设置在服务器的 QUIC 支持被证明损坏后,Cronet 在此初始期间不应尝试对给定服务器使用 QUIC 的时长。
一旦 Cronet 检测到某个服务器宣传支持 QUIC 但实际不支持,它就会将该服务器标记为损坏,并在一段时间内不尝试在使用该服务器时使用 QUIC。一旦过了此时间,Cronet 将再次尝试使用 QUIC。这是为了平衡短期(如果服务器已损坏,尝试 QUIC 没有意义,浪费资源)和长期(损坏可能是暂时的,使用 QUIC 通常有益)利益。
每次连续重试失败,延迟时间都会增加。详见 increaseBrokenServicePeriodExponentialally(boolean)
。
参数
initialBrokenServicePeriodSeconds |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder setPreCryptoHandshakeIdleTimeoutSeconds (long preCryptoHandshakeIdleTimeoutSeconds)
设置尚未完成 SSL 握手的连接的最大空闲时间。
参数
preCryptoHandshakeIdleTimeoutSeconds |
---|
返回
- builder 用于链式调用
public QuicOptions.Builder setRetransmittableOnWireTimeoutMillis (long retransmittableOnWireTimeoutMillis)
设置线路上数据包之间的最大期望时间。
当超出在线可重传时间时,Cronet 将使用人工流量探测网络的质量。超时时间越短,通常越能更快地发现损坏或退化的路径,但也会消耗更多资源(电池、数据)。
参数
retransmittableOnWireTimeoutMillis |
---|
返回
- builder 用于链式调用