QuicOptions.Builder

public class QuicOptions.Builder


Builder für QuicOptions.

Zusammenfassung

Öffentliche Methoden

QuicOptions.Builder

Fügt einen Host der QUIC-Zulassungsliste hinzu.

QuicOptions.Builder

Fügt ein QUIC-Tag hinzu, das in den Verbindungsoptionen eines QUIC-Handshake gesendet wird und sich nur auf den Client auswirkt.

QuicOptions.Builder

Fügt ein QUIC-Tag hinzu, das in den Verbindungsoptionen eines QUIC-Handshake gesendet werden soll.

QuicOptions.Builder

Fügt der Liste der zu aktivierenden QUIC-Versionen eine QUIC-Version hinzu.

QuicOptions.Builder

Legt ein beliebiges QUICHE-Flag fest.

QuicOptions

Erstellt und gibt die endgültige QuicOptions-Instanz basierend auf den Werten in diesem Builder zurück.

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

Legt fest, ob QUIC-Sitzungen bei einer Änderung der IP-Adresse geschlossen werden sollen.

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

Legt fest, ob Cronet warten soll, bis der primäre Pfad (in der Regel QUIC) bereit ist, auch wenn ein sekundärer Pfad zum Erreichen des Servers (SPDY / HTTP2) sofort bereit ist.

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

Legt fest, ob TLS mit 0-RTT aktiviert werden soll.

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

Legt fest, ob QUIC-Sitzungen bei einer Änderung der IP-Adresse beendet werden sollen.

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

Legt fest, ob der Zeitraum, in dem der Server nicht funktioniert, exponentiell skaliert werden soll.

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

Legt fest, ob Anfragen, die mit QUIC-Protokollfehlern fehlgeschlagen sind, ohne Verwendung von alt-svc-Servern wiederholt werden sollen.

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

Legt das Zeitlimit für einen SSL-Handshake für eine Verbindung fest.

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

Legt den User-Agent fest, der außerhalb von HTTP-Anfragen verwendet werden soll (z. B. für QUIC-Handshakes).

QuicOptions.Builder

Wie setIdleConnectionTimeoutSeconds, aber mit java.time.Duration.

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Legt die maximale Leerlaufzeit für eine Verbindung fest.

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Legt fest, wie viele Serverkonfigurationen (Metadaten wie Liste der alternativen Dienste, ob QUIC unterstützt wird usw.) im Arbeitsspeicher gehalten werden sollen.

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

Legt den Startzeitpunkt fest, ab dem Cronet nicht mehr versuchen soll, QUIC für einen bestimmten Server zu verwenden, nachdem sich die QUIC-Unterstützung des Servers als fehlerhaft erwiesen hat.

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

Legt die maximale Leerlaufzeit für eine Verbindung fest, für die noch kein SSL-Handshake abgeschlossen wurde.

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

Legt die maximal gewünschte Zeit zwischen Paketen auf dem Kabel fest.

Öffentliche Methoden

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

Fügt einen Host der QUIC-Zulassungsliste hinzu.

Wenn keine Hosts angegeben sind, ist die Funktion für die Zulassungsliste pro Host deaktiviert. Andernfalls verwendet Cronet QUIC nur für die Kommunikation mit Hosts auf der Zulassungsliste.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

addClientConnectionOption

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

Fügt ein QUIC-Tag hinzu, das in den Verbindungsoptionen eines QUIC-Handshake gesendet wird und sich nur auf den Client auswirkt.

Unter addConnectionOption finden Sie weitere Informationen.

addConnectionOption

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

Fügt ein QUIC-Tag hinzu, das in den Verbindungsoptionen eines QUIC-Handshake gesendet werden soll.

Die QUIC-Tags sollten als Strings mit bis zu vier Buchstaben dargestellt werden (z. B. NBHD).

Da sich die QUIC-Tags in der aktiven Entwicklung befinden und einige nur für den Server relevant sind, versucht Cronet nicht, eine vollständige Liste aller unterstützten QUIC-Flags als Teil der API zu führen. Die Flags. Flags, die von QUICHE, einer QUIC-Implementierung, die von Cronet und Google-Servern verwendet wird, unterstützt werden, finden Sie hier.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

addEnabledQuicVersion

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

Fügt der Liste der zu aktivierenden QUIC-Versionen eine QUIC-Version hinzu.

Wenn keine Versionen angegeben sind, verwendet Cronet eine Liste mit Standard-QUIC-Versionen.

Das Versionsformat wird von QUICHE angegeben. Außer dem Herausfiltern von Werten, die als veraltet bekannt sind, verarbeitet Cronet die Versionen nicht und leitet sie einfach an QUICHE weiter.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

addExtraQuicheFlag

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

Legt ein beliebiges QUICHE-Flag fest. Flags sollten im Format FLAG_NAME=FLAG_VALUE übergeben werden. Eine vollständige Liste der Flags finden Sie in der QUICHE-Codebasis.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

Build

public QuicOptions build()

Erstellt und gibt die endgültige QuicOptions-Instanz basierend auf den Werten in diesem Builder zurück.

closeSessionsOnIpChange

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

Legt fest, ob QUIC-Sitzungen bei einer Änderung der IP-Adresse geschlossen werden sollen.

Sollte nicht in Kombination mit der Verbindungsmigration verwendet werden (konfiguriert mit ConnectionMigrationOptions).

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

delayJobsWithAvailableSpdySession

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

Legt fest, ob Cronet warten soll, bis der primäre Pfad (in der Regel QUIC) bereit ist, auch wenn ein sekundärer Pfad zum Erreichen des Servers (SPDY / HTTP2) sofort bereit ist.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

enableTlsZeroRtt

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

Legt fest, ob TLS mit 0-RTT aktiviert werden soll.

0-RTT ist eine Leistungsoptimierung, mit der ein zusätzlicher Roundtrip beim Wiederaufnehmen von Verbindungen zu einem bekannten Server vermieden wird.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

goawaySessionsOnIpChange

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

Legt fest, ob QUIC-Sitzungen bei einer Änderung der IP-Adresse beendet werden sollen.

Sollte nicht in Kombination mit der Verbindungsmigration verwendet werden (konfiguriert mit ConnectionMigrationOptions).

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

increaseBrokenServicePeriodExponentially

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

Legt fest, ob der Zeitraum, in dem der Server nicht funktioniert, exponentiell skaliert werden soll.

Bei „true“ wird die anfängliche Verzögerung (konfigurierbar über setInitialBrokenServicePeriodSeconds) für nachfolgende Wiederholungsversuche exponentiell skaliert (SCALING_FACTOR^NUM_TRIES * delay). Bei „false“ wird die Verzögerung linear skaliert (SCALING_FACTOR * NUM_TRIES * delay).

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

retryWithoutAltSvcOnQuicErrors

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

Legt fest, ob Anfragen, die mit QUIC-Protokollfehlern fehlgeschlagen sind, ohne Verwendung von alt-svc-Servern wiederholt werden sollen.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setCryptoHandshakeTimeoutSeconds

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

Legt das Zeitlimit für einen SSL-Handshake für eine Verbindung fest.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

Legt den User-Agent fest, der außerhalb von HTTP-Anfragen verwendet werden soll (z. B. für QUIC-Handshakes).

Verwenden Sie stattdessen setUserAgent, um den Standard-User-Agenten für HTTP-Anfragen festzulegen.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setIdleConnectionTimeout

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

Wie setIdleConnectionTimeoutSeconds, aber mit java.time.Duration.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Legt die maximale Leerlaufzeit für eine Verbindung fest. Der tatsächliche Wert für das Leerlauftimeout ist der Mindestwert aus diesem Wert und dem des Servers. Er wird während des Handshake ausgehandelt. Sie gilt also erst nach Abschluss des Handshake. Wenn für die festgelegte Dauer keine Aktivität auf der Verbindung erkannt wird, wird die Verbindung geschlossen.

Weitere Informationen finden Sie unter RFC 9114, Abschnitt 5.1 .

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setInMemoryServerConfigsCacheSize

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Legt fest, wie viele Serverkonfigurationen (Metadaten wie Liste der alternativen Dienste, ob QUIC unterstützt wird usw.) im Arbeitsspeicher gehalten werden sollen.

Wenn der Speicherpfad festgelegt ist (setStoragePath), speichert Cronet die Serverkonfigurationen auch auf der Festplatte.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setInitialBrokenServicePeriodSeconds

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

Legt den Startzeitpunkt fest, ab dem Cronet nicht mehr versuchen soll, QUIC für einen bestimmten Server zu verwenden, nachdem sich die QUIC-Unterstützung des Servers als fehlerhaft erwiesen hat.

Wenn Cronet erkennt, dass ein Server QUIC bewirbt, aber nicht tatsächlich spricht, wird der Server als fehlerhaft markiert und es wird für eine bestimmte Zeit nicht versucht, QUIC für die Kommunikation mit dem Server zu verwenden. Sobald Cronet diesen Punkt erreicht hat, wird QUIC wieder verwendet. So wird ein Gleichgewicht zwischen kurzfristigen (es ist sinnlos, Ressourcen für QUIC zu verschwenden, wenn der Server nicht funktioniert) und langfristigen Interessen (die Störung war möglicherweise nur vorübergehend, die Verwendung von QUIC ist im Allgemeinen von Vorteil) geschaffen.

Die Verzögerung wird bei jedem erfolglosen aufeinanderfolgenden Wiederholungsversuch erhöht. Weitere Informationen finden Sie unter increaseBrokenServicePeriodExponentially.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setPreCryptoHandshakeIdleTimeoutSeconds

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

Legt die maximale Leerlaufzeit für eine Verbindung fest, für die noch kein SSL-Handshake abgeschlossen wurde.

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung

setRetransmittableOnWireTimeoutMillis

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

Legt die maximal gewünschte Zeit zwischen Paketen auf dem Kabel fest.

Wenn die Zeit für die erneute Übertragung über das Kabel überschritten wird, prüft Cronet die Qualität des Netzwerks mithilfe von künstlichem Traffic. Kürzere Zeitüberschreitungen führen in der Regel zu einer schnelleren Erkennung eines fehlerhaften oder sich verschlechternden Pfads, aber auch zu einem höheren Ressourcenverbrauch (Akku, Daten).

Gibt Folgendes zurück:
QuicOptions.Builder

Der Builder für die Verkettung