QuicOptions.Builder

public class QuicOptions.Builder


QuicOptions 的构建器。

摘要

公共方法

QuicOptions.Builder

将主机添加到 QUIC 许可名单。

QuicOptions.Builder

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

QuicOptions.Builder

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

QuicOptions.Builder

向要启用的 QUIC 版本列表中添加 QUIC 版本。

QuicOptions.Builder

设置任意 QUICHE 标志。

QuicOptions

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

QuicOptions.Builder
@QuicOptions.Experimental
closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

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

QuicOptions.Builder
@QuicOptions.Experimental
delayJobsWithAvailableSpdySession(
    boolean delayJobsWithAvailableSpdySession
)

设置 Cronet 是否应等待主路径(通常为 QUIC)准备就绪,即使存在可立即就绪的到达服务器的辅助路径 (SPDY / HTTP2) 也是如此。

QuicOptions.Builder
@QuicOptions.Experimental
enableTlsZeroRtt(boolean enableTlsZeroRtt)

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

QuicOptions.Builder
@QuicOptions.Experimental
goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)

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

QuicOptions.Builder
@QuicOptions.Experimental
increaseBrokenServicePeriodExponentially(
    boolean increaseBrokenServicePeriodExponentially
)

设置中断服务器时段是否应呈指数级缩放。

QuicOptions.Builder
@QuicOptions.Experimental
retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)

设置是否应在不使用任何 alt-svc 服务器的情况下重试因 QUIC 协议错误而失败的请求。

QuicOptions.Builder
@QuicOptions.Experimental
setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)

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

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

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

QuicOptions.Builder

setIdleConnectionTimeoutSeconds 相同,但使用 java.time.Duration

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

设置连接的最大空闲时间。

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

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

QuicOptions.Builder
@QuicOptions.Experimental
setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

设置初始时间,在此时间之后,如果发现服务器的 QUIC 支持出现故障,Cronet 不应尝试对给定服务器使用 QUIC。

QuicOptions.Builder
@QuicOptions.Experimental
setPreCryptoHandshakeIdleTimeoutSeconds(
    long preCryptoHandshakeIdleTimeoutSeconds
)

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

QuicOptions.Builder
@QuicOptions.Experimental
setRetransmittableOnWireTimeoutMillis(
    long retransmittableOnWireTimeoutMillis
)

设置线路上的数据包之间所需的最大时间。

公共方法

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

将主机添加到 QUIC 许可名单。

如果未指定任何主机,则停用按主机列入许可名单的功能。否则,Cronet 仅在与许可名单中的主机通信时使用 QUIC。

返回
QuicOptions.Builder

用于链式调用的构建器

addClientConnectionOption

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addClientConnectionOption(String clientConnectionOption)

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

如需了解详情,请参阅 addConnectionOption

addConnectionOption

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addConnectionOption(String connectionOption)

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

QUIC 标记应以不超过四个字母的字符串形式呈现(例如 NBHD)。

由于 QUIC 标记正处于积极开发阶段,并且有些标记仅与服务器相关,因此 Cronet 不会尝试维护所有受支持的 QUIC 标志的完整列表作为 API 的一部分。标志。如需查看 Cronet 和 Google 服务器使用的 QUIC 实现 QUICHE 支持的标志,请点击此处

返回
QuicOptions.Builder

用于链式调用的构建器

addEnabledQuicVersion

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addEnabledQuicVersion(String enabledQuicVersion)

向要启用的 QUIC 版本列表中添加 QUIC 版本。

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

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

返回
QuicOptions.Builder

用于链式调用的构建器

addExtraQuicheFlag

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addExtraQuicheFlag(String extraQuicheFlag)

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

返回
QuicOptions.Builder

用于链式调用的构建器

build

public QuicOptions build()

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

closeSessionsOnIpChange

@QuicOptions.Experimental
public QuicOptions.Builder closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

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

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

返回
QuicOptions.Builder

用于链式调用的构建器

delayJobsWithAvailableSpdySession

@QuicOptions.Experimental
public QuicOptions.Builder delayJobsWithAvailableSpdySession(
    boolean delayJobsWithAvailableSpdySession
)

设置 Cronet 是否应等待主路径(通常为 QUIC)准备就绪,即使存在可立即就绪的到达服务器的辅助路径 (SPDY / HTTP2) 也是如此。

返回
QuicOptions.Builder

用于链式调用的构建器

enableTlsZeroRtt

@QuicOptions.Experimental
public QuicOptions.Builder enableTlsZeroRtt(boolean enableTlsZeroRtt)

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

0-RTT 是一种性能优化,可避免在恢复与已知服务器的连接时进行额外的往返。

返回
QuicOptions.Builder

用于链式调用的构建器

goawaySessionsOnIpChange

@QuicOptions.Experimental
public QuicOptions.Builder goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)

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

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

返回
QuicOptions.Builder

用于链式调用的构建器

increaseBrokenServicePeriodExponentially

@QuicOptions.Experimental
public QuicOptions.Builder increaseBrokenServicePeriodExponentially(
    boolean increaseBrokenServicePeriodExponentially
)

设置中断的服务器周期是否应呈指数级缩放。

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

返回
QuicOptions.Builder

用于链式调用的构建器

retryWithoutAltSvcOnQuicErrors

@QuicOptions.Experimental
public QuicOptions.Builder retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)

设置是否应在不使用任何 alt-svc 服务器的情况下重试因 QUIC 协议错误而失败的请求。

返回
QuicOptions.Builder

用于链式调用的构建器

setCryptoHandshakeTimeoutSeconds

@QuicOptions.Experimental
public QuicOptions.Builder setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)

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

返回
QuicOptions.Builder

用于链式调用的构建器

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

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

如需为 HTTP 请求设置默认用户代理,请改用 setUserAgent

返回
QuicOptions.Builder

用于链式调用的构建器

setIdleConnectionTimeout

@RequiresApi(value = VERSION_CODES.O)
public QuicOptions.Builder setIdleConnectionTimeout(@NonNull Duration idleConnectionTimeout)

setIdleConnectionTimeoutSeconds 相同,但使用 java.time.Duration

返回
QuicOptions.Builder

用于链式调用的构建器

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

设置连接的最大空闲时间。空闲超时的实际值是此值与服务器的空闲超时值中的最小值,并在握手期间协商确定。因此,它仅在握手完成后适用。如果在设定的时长内未检测到连接上的任何活动,系统会关闭该连接。

如需了解详情,请参阅 RFC 9114 的第 5.1 节

返回
QuicOptions.Builder

用于链式调用的构建器

setInMemoryServerConfigsCacheSize

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

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

如果设置了存储路径 (setStoragePath),Cronet 还会将服务器配置持久保留在磁盘上。

返回
QuicOptions.Builder

用于链式调用的构建器

setInitialBrokenServicePeriodSeconds

@QuicOptions.Experimental
public QuicOptions.Builder setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

设置初始时间,在此时间之后,如果发现服务器的 QUIC 支持出现故障,Cronet 不应尝试为给定服务器使用 QUIC。

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

每次连续重试失败,延迟时间都会增加。详见 increaseBrokenServicePeriodExponentially

返回
QuicOptions.Builder

用于链式调用的构建器

setPreCryptoHandshakeIdleTimeoutSeconds

@QuicOptions.Experimental
public QuicOptions.Builder setPreCryptoHandshakeIdleTimeoutSeconds(
    long preCryptoHandshakeIdleTimeoutSeconds
)

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

返回
QuicOptions.Builder

用于链式调用的构建器

setRetransmittableOnWireTimeoutMillis

@QuicOptions.Experimental
public QuicOptions.Builder setRetransmittableOnWireTimeoutMillis(
    long retransmittableOnWireTimeoutMillis
)

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

当可在线重传时间超过时,Cronet 将使用人工流量探测网络质量。较短的超时时间通常会更快地发现中断或性能下降的路径,但也会消耗更多资源(电量、数据)。

返回
QuicOptions.Builder

用于链式调用的构建器