QuicOptions.Builder

public class QuicOptions.Builder


Kreator dla QuicOptions.

Podsumowanie

Metody publiczne

QuicOptions.Builder

Dodaje hosta do listy dozwolonych QUIC.

QuicOptions.Builder

Dodaje tag QUIC do wysłania w opcjach połączenia uzgadniania QUIC, który ma wpływ tylko na klienta.

QuicOptions.Builder

Dodaje tag QUIC do wysłania w opcjach połączenia uzgadniania QUIC.

QuicOptions.Builder

Dodaje wersję QUIC do listy wersji QUIC do włączenia.

QuicOptions.Builder

Ustawia dowolną flagę QUICHE.

QuicOptions

Tworzy i zwraca ostateczną instancję QuicOptions na podstawie wartości w tym konstruktorze.

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

Określa, czy sesje QUIC mają być zamykane w przypadku zmiany adresu IP.

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

Określa, czy Cronet ma czekać na gotowość ścieżki podstawowej (zwykle QUIC), nawet jeśli istnieje ścieżka dodatkowa do serwera (SPDY / HTTP2), która jest od razu gotowa.

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

Określa, czy protokół TLS z 0-RTT ma być włączony.

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

Określa, czy sesje QUIC powinny być zamykane w przypadku zmiany adresu IP.

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

Określa, czy okres niedostępności serwera ma być skalowany wykładniczo.

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

Określa, czy żądania, które nie powiodły się z powodu błędów protokołu QUIC, mają być ponawiane bez użycia serwerów alt-svc.

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

Ustawia limit czasu inicjowania połączenia SSL.

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

Ustawia klienta użytkownika, który ma być używany poza żądaniami HTTP (np. w przypadku uzgadniania połączenia QUIC).

QuicOptions.Builder

Takie samo jak setIdleConnectionTimeoutSeconds, ale z użyciem java.time.Duration.

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Ustawia maksymalny czas bezczynności połączenia.

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Określa, ile konfiguracji serwera (metadane, takie jak lista alt svc, informacja o obsłudze QUIC itp.) ma być przechowywanych w pamięci.

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

Ustawia początkowy czas, po którym Cronet nie powinien próbować używać protokołu QUIC w przypadku danego serwera, jeśli okaże się, że obsługa QUIC przez serwer jest uszkodzona.

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

Określa maksymalny czas bezczynności połączenia, które nie zakończyło jeszcze uzgadniania SSL.

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

Określa maksymalny pożądany czas między pakietami w sieci.

Metody publiczne

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

Dodaje hosta do listy dozwolonych QUIC.

Jeśli nie określono żadnych hostów, funkcja listy dozwolonych dla poszczególnych hostów jest wyłączona. W przeciwnym razie Cronet będzie używać QUIC tylko w przypadku komunikacji z hostami na liście dozwolonych.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

addClientConnectionOption

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

Dodaje tag QUIC do wysłania w opcjach połączenia uzgadniania QUIC, który ma wpływ tylko na klienta.

Więcej informacji znajdziesz w sekcji addConnectionOption.

addConnectionOption

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

Dodaje tag QUIC do wysłania w opcjach połączenia uzgadniania QUIC.

Tagi QUIC powinny być ciągami znaków o długości do 4 liter (np. NBHD).

Tagi QUIC są w trakcie aktywnego rozwoju, a niektóre z nich są istotne tylko dla serwera, dlatego Cronet nie próbuje utrzymywać pełnej listy wszystkich obsługiwanych flag QUIC w ramach interfejsu API. flagi, Flagi obsługiwane przez QUICHE, implementację QUIC używaną przez Cronet i serwery Google, znajdziesz tutaj.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

addEnabledQuicVersion

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

Dodaje wersję QUIC do listy wersji QUIC do włączenia.

Jeśli nie określisz wersji, Cronet użyje listy domyślnych wersji QUIC.

Format wersji jest określony przez QUICHE. Poza odfiltrowywaniem wartości, które są już nieaktualne, Cronet nie przetwarza wersji i po prostu przekazuje je do QUICHE.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

addExtraQuicheFlag

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

Ustawia dowolną flagę QUICHE. Flagi należy przekazywać w formacie FLAG_NAME=FLAG_VALUE. Pełną listę flag znajdziesz w bazie kodu QUICHE.

Zwraca
QuicOptions.Builder

konstruktor do łączenia

kompilacja

public QuicOptions build()

Tworzy i zwraca ostateczną instancję QuicOptions na podstawie wartości w tym konstruktorze.

closeSessionsOnIpChange

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

Określa, czy sesje QUIC mają być zamykane w przypadku zmiany adresu IP.

Nie używaj w połączeniu z migracją połączenia (skonfigurowaną za pomocą argumentu ConnectionMigrationOptions).

Zwraca
QuicOptions.Builder

kreator łańcuchów,

delayJobsWithAvailableSpdySession

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

Określa, czy Cronet ma czekać na gotowość ścieżki podstawowej (zwykle QUIC), nawet jeśli istnieje ścieżka dodatkowa do serwera (SPDY / HTTP2), która jest od razu gotowa.

Zwraca
QuicOptions.Builder

konstruktor do łączenia

enableTlsZeroRtt

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

Określa, czy protokół TLS z 0-RTT ma być włączony.

0-RTT to optymalizacja wydajności, która pozwala uniknąć dodatkowej odpowiedzi serwera podczas wznawiania połączeń ze znanym serwerem.

Zwraca
QuicOptions.Builder

konstruktor do łączenia

goawaySessionsOnIpChange

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

Określa, czy sesje QUIC powinny być zamykane w przypadku zmiany adresu IP.

Nie używaj w połączeniu z migracją połączenia (skonfigurowaną za pomocą argumentu ConnectionMigrationOptions).

Zwraca
QuicOptions.Builder

konstruktor do łączenia

increaseBrokenServicePeriodExponentially

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

Określa, czy okres niedostępności serwera powinien być skalowany wykładniczo.

Jeśli ta opcja ma wartość „true”, początkowe opóźnienie (konfigurowane za pomocą parametru setInitialBrokenServicePeriodSeconds) będzie skalowane wykładniczo w przypadku kolejnych ponownych prób (SCALING_FACTOR^NUM_TRIES * delay). Jeśli ta opcja ma wartość „false”, opóźnienie będzie skalowane liniowo (CZYNNIK_SKALOWANIA * LICZBA_PRÓB * opóźnienie).

Zwraca
QuicOptions.Builder

konstruktor do łączenia

retryWithoutAltSvcOnQuicErrors

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

Określa, czy żądania, które nie powiodły się z powodu błędów protokołu QUIC, mają być ponawiane bez użycia serwerów alt-svc.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

setCryptoHandshakeTimeoutSeconds

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

Ustawia limit czasu inicjowania połączenia SSL.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

Ustawia klienta użytkownika, który ma być używany poza żądaniami HTTP (np. w przypadku uzgadniania połączenia QUIC).

Aby ustawić domyślnego klienta użytkownika dla żądań HTTP, użyj zamiast tego setUserAgent.

Zwraca
QuicOptions.Builder

konstruktor do łączenia

setIdleConnectionTimeout

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

Takie samo jak setIdleConnectionTimeoutSeconds, ale z użyciem java.time.Duration.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Ustawia maksymalny czas bezczynności połączenia. Rzeczywista wartość limitu czasu bezczynności jest mniejszą z 2 wartości: tej wartości i wartości serwera. Jest ona negocjowana podczas uzgadniania połączenia. Dlatego ma zastosowanie dopiero po zakończeniu uzgadniania. Jeśli w określonym czasie nie zostanie wykryta żadna aktywność, połączenie zostanie zamknięte.

Więcej informacji znajdziesz w RFC 9114, sekcja 5.1 .

Zwraca
QuicOptions.Builder

konstruktor do łączenia

setInMemoryServerConfigsCacheSize

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Określa, ile konfiguracji serwera (metadane, takie jak lista alt svc, informacja o obsłudze QUIC itp.) ma być przechowywanych w pamięci.

Jeśli ścieżka do miejsca na dane jest ustawiona (setStoragePath), Cronet będzie też zapisywać konfiguracje serwera na dysku.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

setInitialBrokenServicePeriodSeconds

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

Ustawia początkowy czas, po którym Cronet nie powinien próbować używać protokołu QUIC w przypadku danego serwera, jeśli okaże się, że obsługa QUIC przez serwer jest uszkodzona.

Gdy Cronet wykryje, że serwer reklamuje QUIC, ale w rzeczywistości go nie obsługuje, oznacza go jako uszkodzony i przez pewien czas nie próbuje używać QUIC w komunikacji z nim. Gdy Cronet przekroczy ten punkt, ponownie spróbuje użyć QUIC. Ma to na celu zrównoważenie interesów krótkoterminowych (nie ma sensu marnować zasobów na próby użycia QUIC, jeśli serwer jest uszkodzony) i długoterminowych (uszkodzenie mogło być tymczasowe, a korzystanie z QUIC jest ogólnie korzystne).

Opóźnienie jest zwiększane po każdej nieudanej próbie ponowienia. Aby dowiedzieć się więcej, wejdź na increaseBrokenServicePeriodExponentially.

Zwraca
QuicOptions.Builder

kreator łańcuchów,

setPreCryptoHandshakeIdleTimeoutSeconds

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

Określa maksymalny czas bezczynności połączenia, które nie zostało jeszcze w pełni uzgodnione w ramach protokołu SSL.

Zwraca
QuicOptions.Builder

konstruktor do łączenia

setRetransmittableOnWireTimeoutMillis

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

Określa maksymalny pożądany czas między pakietami w sieci.

Gdy czas ponownej transmisji w sieci przewodowej zostanie przekroczony, Cronet sprawdzi jakość sieci za pomocą sztucznego ruchu. Krótsze limity czasu zwykle przyspieszają wykrywanie uszkodzonych lub pogarszających się ścieżek, ale też zwiększają zużycie zasobów (baterii, danych).

Zwraca
QuicOptions.Builder

kreator łańcuchów,