QuicOptions.Builder

public class QuicOptions.Builder


Compilador para QuicOptions.

Resumen

Métodos públicos

QuicOptions.Builder

Agrega un host a la lista de entidades permitidas de QUIC.

QuicOptions.Builder

Agrega una etiqueta de QUIC para enviar en las opciones de conexión de un handshake de QUIC que solo afecta al cliente.

QuicOptions.Builder

Agrega una etiqueta de QUIC para enviar en las opciones de conexión del handshake de QUIC.

QuicOptions.Builder

Agrega una versión de QUIC a la lista de versiones de QUIC que se habilitarán.

QuicOptions.Builder

Establece una marca de QUICHE arbitraria.

QuicOptions

Crea y devuelve la instancia final de QuicOptions, según los valores de este compilador.

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

Establece si las sesiones de QUIC se deben cerrar cuando cambia la dirección IP.

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

Establece si Cronet debe esperar a que la ruta principal (por lo general, QUIC) esté lista, incluso si hay una ruta secundaria para llegar al servidor (SPDY / HTTP2) que está lista de inmediato.

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

Establece si se debe habilitar TLS con 0-RTT.

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

Establece si las sesiones de QUIC deben cerrarse con goaway cuando cambia la dirección IP.

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

Establece si el período de servidor inactivo debe escalarse de forma exponencial.

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

Establece si se deben volver a intentar las solicitudes que fallaron con errores del protocolo QUIC sin usar ningún servidor alt-svc.

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

Establece el tiempo de espera para un protocolo de enlace SSL de conexión.

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

Establece el usuario-agente que se usará fuera de las solicitudes HTTP (por ejemplo, para los handshake de QUIC).

QuicOptions.Builder

Es igual que setIdleConnectionTimeoutSeconds, pero usa java.time.Duration.

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Establece el tiempo de inactividad máximo para una conexión.

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Establece cuántas configuraciones del servidor (metadatos como la lista de alt svc, si se admite QUIC, etc.) se deben mantener en la memoria.

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

Establece el valor inicial para el que Cronet no debe intentar usar QUIC para un servidor determinado después de que se descubrió que la compatibilidad con QUIC del servidor estaba dañada.

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

Establece el tiempo de inactividad máximo para una conexión que aún no completó un protocolo de enlace SSL.

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

Establece el tiempo máximo deseado entre paquetes en el cable.

Métodos públicos

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

Agrega un host a la lista de entidades permitidas de QUIC.

Si no se especifican hosts, se inhabilita la funcionalidad de lista de entidades permitidas por host. De lo contrario, Cronet solo usará QUIC cuando se comunique con hosts en la lista de entidades permitidas.

Muestra
QuicOptions.Builder

El compilador para encadenar

addClientConnectionOption

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

Agrega una etiqueta de QUIC para enviar en las opciones de conexión de un handshake de QUIC que solo afecta al cliente.

Consulta addConnectionOption para obtener más información.

addConnectionOption

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

Agrega una etiqueta de QUIC para enviar en las opciones de conexión del handshake de QUIC.

Las etiquetas de QUIC deben presentarse como cadenas de hasta cuatro letras (por ejemplo, NBHD).

Dado que las etiquetas de QUIC están en desarrollo activo y algunas solo son relevantes para el servidor, Cronet no intenta mantener una lista completa de todas las marcas de QUIC compatibles como parte de la API. Las marcas Los parámetros admitidos por QUICHE, una implementación de QUIC que usan los servidores de Cronet y Google, se pueden encontrar aquí.

Muestra
QuicOptions.Builder

El compilador para encadenar

addEnabledQuicVersion

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

Agrega una versión de QUIC a la lista de versiones de QUIC que se habilitarán.

Si no se especifican versiones, Cronet usará una lista de versiones predeterminadas de QUIC.

El formato de la versión se especifica con QUICHE. Además de filtrar los valores que se sabe que están obsoletos, Cronet no procesa las versiones de ninguna manera y simplemente las pasa a QUICHE.

Muestra
QuicOptions.Builder

El compilador para encadenar

addExtraQuicheFlag

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

Establece una marca de QUICHE arbitraria. Las marcas deben pasarse en formato FLAG_NAME=FLAG_VALUE. Consulta la base de código de QUICHE para obtener una lista completa de marcas.

Muestra
QuicOptions.Builder

El compilador para encadenar

build

public QuicOptions build()

Crea y devuelve la instancia final de QuicOptions, según los valores de este compilador.

closeSessionsOnIpChange

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

Establece si las sesiones de QUIC se deben cerrar cuando cambia la dirección IP.

No se debe usar en combinación con la migración de conexión (configurada con ConnectionMigrationOptions).

Muestra
QuicOptions.Builder

El compilador para encadenar

delayJobsWithAvailableSpdySession

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

Establece si Cronet debe esperar a que la ruta principal (por lo general, QUIC) esté lista, incluso si hay una ruta secundaria para llegar al servidor (SPDY / HTTP2) que está lista de inmediato.

Muestra
QuicOptions.Builder

El compilador para encadenar

enableTlsZeroRtt

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

Establece si se debe habilitar TLS con 0-RTT.

La tecnología 0-RTT es una optimización del rendimiento que evita un viaje de ida y vuelta adicional cuando se reanudan las conexiones a un servidor conocido.

Muestra
QuicOptions.Builder

El compilador para encadenar

goawaySessionsOnIpChange

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

Establece si las sesiones de QUIC deben cerrarse con goaway cuando cambia la dirección IP.

No se debe usar en combinación con la migración de conexión (configurada con ConnectionMigrationOptions).

Muestra
QuicOptions.Builder

El compilador para encadenar

increaseBrokenServicePeriodExponentially

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

Establece si el período de servidor inactivo debe escalarse de forma exponencial.

Si se establece como verdadero, la demora inicial (que se puede configurar con setInitialBrokenServicePeriodSeconds) se ajustará de forma exponencial para los reintentos posteriores (SCALING_FACTOR^NUM_TRIES * delay). Si se establece como falso, la demora se ajustará de forma lineal (SCALING_FACTOR * NUM_TRIES * delay).

Muestra
QuicOptions.Builder

El compilador para encadenar

retryWithoutAltSvcOnQuicErrors

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

Establece si se deben volver a intentar las solicitudes que fallaron con errores del protocolo QUIC sin usar ningún servidor alt-svc.

Muestra
QuicOptions.Builder

El compilador para encadenar

setCryptoHandshakeTimeoutSeconds

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

Establece el tiempo de espera para un protocolo de enlace SSL de conexión.

Muestra
QuicOptions.Builder

El compilador para encadenar

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

Establece el usuario-agente que se usará fuera de las solicitudes HTTP (por ejemplo, para los handshake de QUIC).

Para establecer el usuario-agente predeterminado para las solicitudes HTTP, usa setUserAgent.

Muestra
QuicOptions.Builder

El compilador para encadenar

setIdleConnectionTimeout

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

Es igual que setIdleConnectionTimeoutSeconds, pero usa java.time.Duration.

Muestra
QuicOptions.Builder

El compilador para encadenar

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Establece el tiempo de inactividad máximo para una conexión. El valor real del tiempo de espera por inactividad es el mínimo entre este valor y el del servidor, y se negocia durante el protocolo de enlace. Por lo tanto, solo se aplica después de que se completa el handshake. Si no se detecta actividad en la conexión durante el período establecido, se cierra la conexión.

Consulta RFC 9114, sección 5.1 para obtener más detalles.

Muestra
QuicOptions.Builder

El compilador para encadenar

setInMemoryServerConfigsCacheSize

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Establece cuántas configuraciones del servidor (metadatos como la lista de alt svc, si se admite QUIC, etc.) se deben mantener en la memoria.

Si se configura la ruta de almacenamiento (setStoragePath), Cronet también persistirá las configuraciones del servidor en el disco.

Muestra
QuicOptions.Builder

El compilador para encadenar

setInitialBrokenServicePeriodSeconds

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

Establece el valor inicial para el que Cronet no debe intentar usar QUIC para un servidor determinado después de que se descubrió que la compatibilidad con QUIC del servidor estaba dañada.

Una vez que Cronet detecta que un servidor anuncia QUIC, pero en realidad no lo usa, lo marca como dañado y no intenta usar QUIC cuando se comunica con él durante un tiempo. Una vez que Cronet supere este punto, intentará usar QUIC nuevamente. Esto se hace para equilibrar los intereses a corto plazo (no tiene sentido desperdiciar recursos para probar QUIC si el servidor no funciona) y a largo plazo (es posible que la falla haya sido temporal y, en general, usar QUIC es beneficioso).

La demora aumenta con cada reintento consecutivo sin éxito. Consulta increaseBrokenServicePeriodExponentially para obtener información.

Muestra
QuicOptions.Builder

El compilador para encadenar

setPreCryptoHandshakeIdleTimeoutSeconds

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

Establece el tiempo de inactividad máximo para una conexión que aún no completó un protocolo de enlace SSL.

Muestra
QuicOptions.Builder

El compilador para encadenar

setRetransmittableOnWireTimeoutMillis

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

Establece el tiempo máximo deseado entre paquetes en el cable.

Cuando se supera el tiempo de retransmisión por cable, Cronet sondeará la calidad de la red con tráfico artificial. Los tiempos de espera más cortos suelen generar un descubrimiento más rápido de una ruta dañada o en deterioro, pero también un mayor uso de recursos (batería, datos).

Muestra
QuicOptions.Builder

El compilador para encadenar