QuicOptions.Builder

public static class QuicOptions.Builder extends Object

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 build ()

基于此 builder 中的值,创建并返回最终的 QuicOptions 实例。

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 用于链式调用