QuicOptions.Builder

public class QuicOptions.Builder


Builder para a classe QuicOptions.

Resumo

Métodos públicos

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
@QuicOptions.Experimental
closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

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

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

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
@QuicOptions.Experimental
enableTlsZeroRtt(boolean enableTlsZeroRtt)

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

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

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(
    boolean increaseBrokenServicePeriodExponentially
)

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

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

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

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

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

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

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

QuicOptions.Builder

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

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

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

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

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(
    long initialBrokenServicePeriodSeconds
)

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(
    long preCryptoHandshakeIdleTimeoutSeconds
)

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

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

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

Métodos públicos

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

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
public QuicOptions.Builder addClientConnectionOption(String clientConnectionOption)

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
public QuicOptions.Builder addConnectionOption(String connectionOption)

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

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

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

public QuicOptions build()

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

closeSessionsOnIpChange

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

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
public QuicOptions.Builder delayJobsWithAvailableSpdySession(
    boolean delayJobsWithAvailableSpdySession
)

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
public QuicOptions.Builder enableTlsZeroRtt(boolean enableTlsZeroRtt)

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
public QuicOptions.Builder goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)

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
public QuicOptions.Builder increaseBrokenServicePeriodExponentially(
    boolean increaseBrokenServicePeriodExponentially
)

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
public QuicOptions.Builder retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)

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
public QuicOptions.Builder setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)

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

Retorna
QuicOptions.Builder

o builder para encadeamento

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

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)
public QuicOptions.Builder setIdleConnectionTimeout(@NonNull Duration idleConnectionTimeout)

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

Retorna
QuicOptions.Builder

o builder para encadeamento

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

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

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

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
public QuicOptions.Builder setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

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
public QuicOptions.Builder setPreCryptoHandshakeIdleTimeoutSeconds(
    long preCryptoHandshakeIdleTimeoutSeconds
)

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
public QuicOptions.Builder setRetransmittableOnWireTimeoutMillis(
    long retransmittableOnWireTimeoutMillis
)

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