QuicOptions.Builder

class QuicOptions.Builder


Builder para a classe QuicOptions.

Resumo

Funções públicas

QuicOptions.Builder!

Adiciona um host à lista de permissões do QUIC.

QuicOptions.Builder!

Adiciona uma tag QUIC para enviar nas opções de conexão de um handshake QUIC que afeta apenas o cliente.

QuicOptions.Builder!

Adiciona uma tag QUIC para enviar nas opções de conexão de um handshake QUIC.

QuicOptions.Builder!

Adiciona uma versão do QUIC à lista de versões a serem ativadas.

QuicOptions.Builder!

Define uma flag QUICHE arbitrária.

QuicOptions!

Cria e retorna a instância QuicOptions final com base nos valores deste builder.

QuicOptions.Builder!

Define se as sessões QUIC devem ser fechadas quando o endereço IP muda.

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

Define se o Cronet deve esperar que o caminho principal (geralmente QUIC) fique pronto, mesmo que haja um caminho secundário para alcançar o servidor (SPDY / HTTP2) que esteja pronto imediatamente.

QuicOptions.Builder!

Define se o TLS com 0-RTT deve ser ativado.

QuicOptions.Builder!

Define se as sessões QUIC devem ser encerradas com "goaway" em caso de mudança de endereço IP.

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

Define se o período de servidor inativo deve ser escalonado exponencialmente.

QuicOptions.Builder!

Define se as solicitações que falharam com erros de protocolo QUIC devem ser repetidas sem usar servidores alt-svc.

QuicOptions.Builder!

Define o tempo limite para um handshake SSL de conexão.

QuicOptions.Builder!
setHandshakeUserAgent(handshakeUserAgent: String!)

Define o user agent a ser usado fora das solicitações HTTP (por exemplo, para handshakes QUIC).

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

Igual a setIdleConnectionTimeoutSeconds, mas usando java.time.Duration.

QuicOptions.Builder!
setIdleConnectionTimeoutSeconds(idleConnectionTimeoutSeconds: Long)

Define o tempo máximo de inatividade para uma conexão.

QuicOptions.Builder!
setInMemoryServerConfigsCacheSize(inMemoryServerConfigsCacheSize: Int)

Define quantas configurações de servidor (metadados como lista de alt svc, se o QUIC é compatível etc.) devem ser mantidas na memória.

QuicOptions.Builder!
@QuicOptions.Experimental
setInitialBrokenServicePeriodSeconds(
    initialBrokenServicePeriodSeconds: Long
)

Define o valor inicial para que o Cronet não tente usar o QUIC em um determinado servidor depois que o suporte do QUIC do servidor se mostrou corrompido.

QuicOptions.Builder!
@QuicOptions.Experimental
setPreCryptoHandshakeIdleTimeoutSeconds(
    preCryptoHandshakeIdleTimeoutSeconds: Long
)

Define o tempo máximo de inatividade para uma conexão que ainda não concluiu um handshake SSL.

QuicOptions.Builder!
@QuicOptions.Experimental
setRetransmittableOnWireTimeoutMillis(
    retransmittableOnWireTimeoutMillis: Long
)

Define o tempo máximo desejado entre pacotes no fio.

Funções públicas

addAllowedQuicHost

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

Adiciona um host à lista de permissões do QUIC.

Se nenhum host for especificado, a funcionalidade de lista de permissões por host será desativada. Caso contrário, o Cronet só usará o QUIC ao se comunicar com hosts na lista de permissões.

Retorna
QuicOptions.Builder!

o builder para encadeamento

addClientConnectionOption

@QuicOptions.QuichePassthroughOption
fun addClientConnectionOption(clientConnectionOption: String!): QuicOptions.Builder!

Adiciona uma tag QUIC para enviar nas opções de conexão de um handshake QUIC que afeta apenas o cliente.

Consulte addConnectionOption para mais detalhes.

addConnectionOption

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

Adiciona uma tag QUIC para enviar nas opções de conexão de um handshake QUIC.

As tags QUIC precisam ser apresentadas como strings de até quatro letras (por exemplo, NBHD).

Como as tags QUIC estão em desenvolvimento ativo e algumas são relevantes apenas para o servidor, o Cronet não tenta manter uma lista completa de todas as flags QUIC compatíveis como parte da API. As flags. As flags compatíveis com QUICHE, uma implementação do QUIC usada pelo Cronet e pelos servidores do Google, podem ser encontradas aqui.

Retorna
QuicOptions.Builder!

o builder para encadeamento

addEnabledQuicVersion

@QuicOptions.QuichePassthroughOption
fun addEnabledQuicVersion(enabledQuicVersion: String!): QuicOptions.Builder!

Adiciona uma versão do QUIC à lista de versões a serem ativadas.

Se nenhuma versão for especificada, o Cronet vai usar uma lista de versões padrão do QUIC.

O formato da versão é especificado por QUICHE. Além de filtrar valores conhecidos como obsoletos, o Cronet não processa as versões de forma alguma e simplesmente as transmite para o QUICHE.

Retorna
QuicOptions.Builder!

o builder para encadeamento

addExtraQuicheFlag

@QuicOptions.QuichePassthroughOption
fun addExtraQuicheFlag(extraQuicheFlag: String!): QuicOptions.Builder!

Define uma flag QUICHE arbitrária. As flags precisam ser transmitidas no formato FLAG_NAME=FLAG_VALUE. Consulte a base de código QUICHE para ver uma lista completa de flags.

Retorna
QuicOptions.Builder!

o builder para encadeamento

build

fun build(): QuicOptions!

Cria e retorna a instância QuicOptions final com base nos valores deste builder.

closeSessionsOnIpChange

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

Define se as sessões QUIC devem ser fechadas quando o endereço IP muda.

Não use em combinação com a migração de conexão (configurada usando ConnectionMigrationOptions).

Retorna
QuicOptions.Builder!

o builder para encadeamento

delayJobsWithAvailableSpdySession

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

Define se o Cronet deve esperar que o caminho principal (geralmente QUIC) fique pronto, mesmo que haja um caminho secundário para alcançar o servidor (SPDY / HTTP2) que esteja pronto imediatamente.

Retorna
QuicOptions.Builder!

o builder para encadeamento

enableTlsZeroRtt

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

Define se o TLS com 0-RTT deve ser ativado.

O 0-RTT é uma otimização de performance que evita uma viagem de ida e volta extra ao retomar conexões com um servidor conhecido.

Retorna
QuicOptions.Builder!

o builder para encadeamento

goawaySessionsOnIpChange

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

Define se as sessões QUIC devem ser encerradas com "goaway" em caso de mudança de endereço IP.

Não use em combinação com a migração de conexão (configurada usando ConnectionMigrationOptions).

Retorna
QuicOptions.Builder!

o builder para encadeamento

increaseBrokenServicePeriodExponentially

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

Define se o período de servidor inativo deve ser escalonado exponencialmente.

Se for definido como "true", o atraso inicial (configurável por setInitialBrokenServicePeriodSeconds) será dimensionado exponencialmente para novas tentativas (SCALING_FACTOR^NUM_TRIES * delay). Se for "false", o atraso será dimensionado linearmente (SCALING_FACTOR * NUM_TRIES * delay).

Retorna
QuicOptions.Builder!

o builder para encadeamento

retryWithoutAltSvcOnQuicErrors

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

Define se as solicitações que falharam com erros de protocolo QUIC devem ser repetidas sem usar servidores alt-svc.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setCryptoHandshakeTimeoutSeconds

@QuicOptions.Experimental
fun setCryptoHandshakeTimeoutSeconds(cryptoHandshakeTimeoutSeconds: Long): QuicOptions.Builder!

Define o tempo limite para um handshake SSL de conexão.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setHandshakeUserAgent

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

Define o user agent a ser usado fora das solicitações HTTP (por exemplo, para handshakes QUIC).

Para definir o user agent padrão para solicitações HTTP, use setUserAgent.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setIdleConnectionTimeout

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

Igual a setIdleConnectionTimeoutSeconds, mas usando java.time.Duration.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setIdleConnectionTimeoutSeconds

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

Define o tempo máximo de inatividade para uma conexão. O valor real para o tempo limite de inatividade é o mínimo entre esse valor e o do servidor, e é negociado durante o handshake. Portanto, ela só se aplica depois que o handshake é concluído. Se nenhuma atividade for detectada na conexão durante o período definido, ela será fechada.

Consulte RFC 9114, seção 5.1 para mais detalhes.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setInMemoryServerConfigsCacheSize

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

Define quantas configurações de servidor (metadados como lista de alt svc, se o QUIC é compatível etc.) devem ser mantidas na memória.

Se o caminho de armazenamento estiver definido (setStoragePath), o Cronet também vai manter as configurações do servidor no disco.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setInitialBrokenServicePeriodSeconds

@QuicOptions.Experimental
fun setInitialBrokenServicePeriodSeconds(
    initialBrokenServicePeriodSeconds: Long
): QuicOptions.Builder!

Define o valor inicial para que o Cronet não tente usar o QUIC em um determinado servidor depois que o suporte do QUIC do servidor se mostrou corrompido.

Quando o Cronet detecta que um servidor anuncia o QUIC, mas não o usa, ele marca o servidor como corrompido e não tenta usar o QUIC ao se comunicar com ele por um período. Depois disso, o Cronet vai tentar usar o QUIC de novo. Isso é para equilibrar interesses de curto prazo (não faz sentido desperdiçar recursos para tentar o QUIC se o servidor estiver com falha) e de longo prazo (a falha pode ter sido temporária, e usar o QUIC geralmente é benéfico).

O atraso aumenta a cada nova tentativa consecutiva sem sucesso. Acesse increaseBrokenServicePeriodExponentially para mais detalhes.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setPreCryptoHandshakeIdleTimeoutSeconds

@QuicOptions.Experimental
fun setPreCryptoHandshakeIdleTimeoutSeconds(
    preCryptoHandshakeIdleTimeoutSeconds: Long
): QuicOptions.Builder!

Define o tempo máximo de inatividade para uma conexão que ainda não concluiu um handshake SSL.

Retorna
QuicOptions.Builder!

o builder para encadeamento

setRetransmittableOnWireTimeoutMillis

@QuicOptions.Experimental
fun setRetransmittableOnWireTimeoutMillis(
    retransmittableOnWireTimeoutMillis: Long
): QuicOptions.Builder!

Define o tempo máximo desejado entre pacotes no fio.

Quando o tempo de retransmissão no fio é excedido, a Cronet testa a qualidade da rede usando tráfego artificial. Timeouts menores geralmente resultam em uma descoberta mais rápida de um caminho corrompido ou em degradação, mas também em um uso maior de recursos (bateria, dados).

Retorna
QuicOptions.Builder!

o builder para encadeamento