QuicOptions.Builder

public class QuicOptions.Builder


Builder untuk QuicOptions.

Ringkasan

Metode publik

QuicOptions.Builder

Menambahkan host ke daftar yang diizinkan QUIC.

QuicOptions.Builder

Menambahkan tag QUIC untuk dikirim dalam opsi koneksi handshake QUIC yang hanya memengaruhi klien.

QuicOptions.Builder

Menambahkan tag QUIC untuk dikirim dalam opsi koneksi handshake QUIC.

QuicOptions.Builder

Menambahkan versi QUIC ke daftar versi QUIC yang akan diaktifkan.

QuicOptions.Builder

Menetapkan tanda QUICHE arbitrer.

QuicOptions

Membuat dan menampilkan instance QuicOptions akhir, berdasarkan nilai dalam builder ini.

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

Menetapkan apakah sesi QUIC harus ditutup saat alamat IP berubah.

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

Menetapkan apakah Cronet harus menunggu jalur utama (biasanya QUIC) siap meskipun ada jalur sekunder untuk menjangkau server (SPDY / HTTP2) yang langsung siap.

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

Menetapkan apakah TLS dengan 0-RTT harus diaktifkan.

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

Menetapkan apakah sesi QUIC harus dihentikan saat alamat IP berubah.

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

Menetapkan apakah periode server yang rusak harus diskalakan secara eksponensial.

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

Menetapkan apakah permintaan yang gagal dengan error protokol QUIC harus dicoba lagi tanpa menggunakan server alt-svc.

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

Menetapkan waktu tunggu untuk handshake SSL koneksi.

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

Menetapkan agen pengguna yang akan digunakan di luar permintaan HTTP (misalnya untuk handshake QUIC).

QuicOptions.Builder

Sama seperti setIdleConnectionTimeoutSeconds, tetapi menggunakan java.time.Duration.

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Menetapkan waktu tidak ada aktivitas maksimum untuk koneksi.

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Menetapkan jumlah konfigurasi server (metadata seperti daftar alt svc, apakah QUIC didukung, dll.) yang harus disimpan dalam memori.

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

Menetapkan awal Cronet tidak boleh mencoba menggunakan QUIC untuk server tertentu setelah dukungan QUIC server tersebut ternyata rusak.

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

Menetapkan waktu tidak ada aktivitas maksimum untuk koneksi yang belum menyelesaikan handshake SSL.

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

Menetapkan waktu maksimum yang diinginkan antara paket di kabel.

Metode publik

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

Menambahkan host ke daftar yang diizinkan QUIC.

Jika tidak ada host yang ditentukan, fungsi daftar yang diizinkan per host akan dinonaktifkan. Jika tidak, Cronet hanya akan menggunakan QUIC saat berkomunikasi dengan host dalam daftar yang diizinkan.

Hasil
QuicOptions.Builder

builder untuk merangkai

addClientConnectionOption

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

Menambahkan tag QUIC untuk dikirim dalam opsi koneksi handshake QUIC yang hanya memengaruhi klien.

Lihat addConnectionOption untuk mengetahui detail selengkapnya.

addConnectionOption

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

Menambahkan tag QUIC untuk dikirim dalam opsi koneksi handshake QUIC.

Tag QUIC harus ditampilkan sebagai string dengan panjang maksimal empat huruf (misalnya, NBHD).

Karena tag QUIC sedang dalam pengembangan aktif dan beberapa hanya relevan dengan server, Cronet tidak berupaya mempertahankan daftar lengkap semua tanda QUIC yang didukung sebagai bagian dari API. Flag. Flag yang didukung oleh QUICHE, penerapan QUIC yang digunakan oleh server Cronet dan Google, dapat ditemukan di sini.

Hasil
QuicOptions.Builder

builder untuk merangkai

addEnabledQuicVersion

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

Menambahkan versi QUIC ke daftar versi QUIC yang akan diaktifkan.

Jika tidak ada versi yang ditentukan, Cronet akan menggunakan daftar versi QUIC default.

Format versi ditentukan oleh QUICHE. Selain memfilter nilai yang diketahui sudah tidak berlaku, Cronet tidak memproses versi tersebut dan hanya meneruskannya ke QUICHE.

Hasil
QuicOptions.Builder

builder untuk merangkai

addExtraQuicheFlag

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

Menetapkan tanda QUICHE arbitrer. Flag harus diteruskan dalam format FLAG_NAME=FLAG_VALUE. Lihat basis kode QUICHE untuk mengetahui daftar lengkap flag.

Hasil
QuicOptions.Builder

builder untuk merangkai

build

public QuicOptions build()

Membuat dan menampilkan instance QuicOptions akhir, berdasarkan nilai dalam builder ini.

closeSessionsOnIpChange

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

Menetapkan apakah sesi QUIC harus ditutup saat alamat IP berubah.

Jangan gunakan bersama dengan migrasi koneksi (dikonfigurasi menggunakan ConnectionMigrationOptions).

Hasil
QuicOptions.Builder

builder untuk merangkai

delayJobsWithAvailableSpdySession

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

Menetapkan apakah Cronet harus menunggu jalur utama (biasanya QUIC) siap meskipun ada jalur sekunder untuk menjangkau server (SPDY / HTTP2) yang langsung siap.

Hasil
QuicOptions.Builder

builder untuk merangkai

enableTlsZeroRtt

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

Menetapkan apakah TLS dengan 0-RTT harus diaktifkan.

0-RTT adalah pengoptimalan performa yang menghindari perjalanan pulang pergi tambahan saat melanjutkan koneksi ke server yang dikenal.

Hasil
QuicOptions.Builder

builder untuk merangkai

goawaySessionsOnIpChange

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

Menetapkan apakah sesi QUIC harus diakhiri saat alamat IP berubah.

Jangan gunakan bersama dengan migrasi koneksi (dikonfigurasi menggunakan ConnectionMigrationOptions).

Hasil
QuicOptions.Builder

builder untuk merangkai

increaseBrokenServicePeriodExponentially

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

Menetapkan apakah periode server yang rusak harus diskalakan secara eksponensial.

Jika ditetapkan ke benar (true), penundaan awal (dapat dikonfigurasi oleh setInitialBrokenServicePeriodSeconds) akan diskalakan secara eksponensial untuk percobaan ulang berikutnya (SCALING_FACTOR^NUM_TRIES * delay). Jika salah (false), penundaan akan diskalakan secara linear (SCALING_FACTOR * NUM_TRIES * delay).

Hasil
QuicOptions.Builder

builder untuk merangkai

retryWithoutAltSvcOnQuicErrors

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

Menetapkan apakah permintaan yang gagal dengan error protokol QUIC harus dicoba lagi tanpa menggunakan server alt-svc.

Hasil
QuicOptions.Builder

builder untuk merangkai

setCryptoHandshakeTimeoutSeconds

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

Menetapkan waktu tunggu untuk handshake SSL koneksi.

Hasil
QuicOptions.Builder

builder untuk merangkai

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

Menetapkan agen pengguna yang akan digunakan di luar permintaan HTTP (misalnya untuk handshake QUIC).

Untuk menyetel agen pengguna default untuk permintaan HTTP, gunakan setUserAgent.

Hasil
QuicOptions.Builder

builder untuk merangkai

setIdleConnectionTimeout

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

Sama seperti setIdleConnectionTimeoutSeconds, tetapi menggunakan java.time.Duration.

Hasil
QuicOptions.Builder

builder untuk merangkai

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Menetapkan waktu tidak ada aktivitas maksimum untuk koneksi. Nilai sebenarnya untuk waktu tunggu tidak ada aktivitas adalah nilai minimum dari nilai ini dan server, serta dinegosiasikan selama handshake. Oleh karena itu, hanya berlaku setelah handshake selesai. Jika tidak ada aktivitas yang terdeteksi pada koneksi selama durasi yang ditetapkan, koneksi akan ditutup.

Lihat RFC 9114, bagian 5.1 untuk mengetahui detail selengkapnya.

Hasil
QuicOptions.Builder

builder untuk merangkai

setInMemoryServerConfigsCacheSize

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Menetapkan jumlah konfigurasi server (metadata seperti daftar alt svc, apakah QUIC didukung, dll.) yang harus disimpan dalam memori.

Jika jalur penyimpanan disetel (setStoragePath, Cronet juga akan menyimpan konfigurasi server di disk.

Hasil
QuicOptions.Builder

builder untuk merangkai

setInitialBrokenServicePeriodSeconds

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

Menetapkan awal Cronet tidak boleh mencoba menggunakan QUIC untuk server tertentu setelah dukungan QUIC server tersebut ternyata rusak.

Setelah mendeteksi bahwa server mengiklankan QUIC, tetapi sebenarnya tidak menggunakannya, Cronet akan menandai server sebagai rusak dan tidak mencoba menggunakan QUIC saat berkomunikasi dengan server selama jangka waktu tertentu. Setelah melewati titik ini, Cronet akan mencoba menggunakan QUIC lagi. Hal ini dilakukan untuk menyeimbangkan kepentingan jangka pendek (tidak ada gunanya membuang-buang resource untuk mencoba QUIC jika server rusak) dan jangka panjang (kerusakan mungkin bersifat sementara, menggunakan QUIC umumnya bermanfaat).

Penundaan akan bertambah setiap kali percobaan ulang berturut-turut tidak berhasil. Lihat increaseBrokenServicePeriodExponentially untuk mengetahui detailnya.

Hasil
QuicOptions.Builder

builder untuk merangkai

setPreCryptoHandshakeIdleTimeoutSeconds

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

Menetapkan waktu tidak ada aktivitas maksimum untuk koneksi yang belum menyelesaikan handshake SSL.

Hasil
QuicOptions.Builder

builder untuk merangkai

setRetransmittableOnWireTimeoutMillis

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

Menetapkan waktu maksimum yang diinginkan antara paket di kabel.

Jika waktu yang dapat ditransmisikan ulang melalui kabel terlampaui, Cronet akan menyelidiki kualitas jaringan menggunakan traffic buatan. Waktu tunggu yang lebih singkat biasanya akan menghasilkan penemuan jalur yang rusak atau menurun lebih cepat, tetapi juga penggunaan resource (baterai, data) yang lebih besar.

Hasil
QuicOptions.Builder

builder untuk merangkai