QuicOptions.Builder

class QuicOptions.Builder


Compilador para QuicOptions.

Resumen

Funciones públicas

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!

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

QuicOptions.Builder!
@QuicOptions.Experimental
delayJobsWithAvailableSpdySession(
    delayJobsWithAvailableSpdySession: Boolean
)

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!

Establece si se debe habilitar TLS con 0-RTT.

QuicOptions.Builder!

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

QuicOptions.Builder!
@QuicOptions.Experimental
increaseBrokenServicePeriodExponentially(
    increaseBrokenServicePeriodExponentially: Boolean
)

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

QuicOptions.Builder!

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!

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

QuicOptions.Builder!
setHandshakeUserAgent(handshakeUserAgent: String!)

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

QuicOptions.Builder!
@RequiresApi(value = VERSION_CODES.O)
setIdleConnectionTimeout(idleConnectionTimeout: Duration)

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

QuicOptions.Builder!
setIdleConnectionTimeoutSeconds(idleConnectionTimeoutSeconds: Long)

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

QuicOptions.Builder!
setInMemoryServerConfigsCacheSize(inMemoryServerConfigsCacheSize: Int)

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(
    initialBrokenServicePeriodSeconds: Long
)

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(
    preCryptoHandshakeIdleTimeoutSeconds: Long
)

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(
    retransmittableOnWireTimeoutMillis: Long
)

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

Funciones públicas

addAllowedQuicHost

fun addAllowedQuicHost(quicHost: String!): QuicOptions.Builder!

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
fun addClientConnectionOption(clientConnectionOption: String!): 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.

Consulta addConnectionOption para obtener más información.

addConnectionOption

@QuicOptions.QuichePassthroughOption
fun addConnectionOption(connectionOption: String!): QuicOptions.Builder!

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
fun addEnabledQuicVersion(enabledQuicVersion: String!): QuicOptions.Builder!

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
fun addExtraQuicheFlag(extraQuicheFlag: String!): QuicOptions.Builder!

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

fun build(): QuicOptions!

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

closeSessionsOnIpChange

@QuicOptions.Experimental
fun closeSessionsOnIpChange(closeSessionsOnIpChange: Boolean): QuicOptions.Builder!

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
fun delayJobsWithAvailableSpdySession(
    delayJobsWithAvailableSpdySession: Boolean
): QuicOptions.Builder!

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
fun enableTlsZeroRtt(enableTlsZeroRtt: Boolean): QuicOptions.Builder!

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
fun goawaySessionsOnIpChange(goawaySessionsOnIpChange: Boolean): QuicOptions.Builder!

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
fun increaseBrokenServicePeriodExponentially(
    increaseBrokenServicePeriodExponentially: Boolean
): QuicOptions.Builder!

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
fun retryWithoutAltSvcOnQuicErrors(retryWithoutAltSvcOnQuicErrors: Boolean): QuicOptions.Builder!

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
fun setCryptoHandshakeTimeoutSeconds(cryptoHandshakeTimeoutSeconds: Long): QuicOptions.Builder!

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

Muestra
QuicOptions.Builder!

El compilador para encadenar

setHandshakeUserAgent

fun setHandshakeUserAgent(handshakeUserAgent: String!): QuicOptions.Builder!

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)
fun setIdleConnectionTimeout(idleConnectionTimeout: Duration): QuicOptions.Builder!

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

Muestra
QuicOptions.Builder!

El compilador para encadenar

setIdleConnectionTimeoutSeconds

fun setIdleConnectionTimeoutSeconds(idleConnectionTimeoutSeconds: Long): QuicOptions.Builder!

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

fun setInMemoryServerConfigsCacheSize(inMemoryServerConfigsCacheSize: Int): QuicOptions.Builder!

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
fun setInitialBrokenServicePeriodSeconds(
    initialBrokenServicePeriodSeconds: Long
): QuicOptions.Builder!

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
fun setPreCryptoHandshakeIdleTimeoutSeconds(
    preCryptoHandshakeIdleTimeoutSeconds: Long
): QuicOptions.Builder!

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
fun setRetransmittableOnWireTimeoutMillis(
    retransmittableOnWireTimeoutMillis: Long
): QuicOptions.Builder!

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