QuicOptions.Builder

class QuicOptions.Builder


Builder untuk QuicOptions.

Ringkasan

Fungsi 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!

Menetapkan apakah sesi QUIC harus ditutup saat alamat IP berubah.

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

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

QuicOptions.Builder!

Menetapkan apakah TLS dengan 0-RTT harus diaktifkan.

QuicOptions.Builder!

Menetapkan apakah sesi QUIC harus dihentikan saat alamat IP berubah.

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

Menetapkan apakah periode server yang rusak harus diskalakan secara eksponensial.

QuicOptions.Builder!

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

QuicOptions.Builder!

Menetapkan waktu tunggu untuk handshake SSL koneksi.

QuicOptions.Builder!
setHandshakeUserAgent(handshakeUserAgent: String!)

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

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

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

QuicOptions.Builder!
setIdleConnectionTimeoutSeconds(idleConnectionTimeoutSeconds: Long)

Menetapkan waktu tidak ada aktivitas maksimum untuk koneksi.

QuicOptions.Builder!
setInMemoryServerConfigsCacheSize(inMemoryServerConfigsCacheSize: Int)

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

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

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

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

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

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

Menetapkan waktu maksimum yang diinginkan antara paket di kabel.

Fungsi publik

addAllowedQuicHost

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

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

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

Lihat addConnectionOption untuk mengetahui detail selengkapnya.

addConnectionOption

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

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

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

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

fun build(): QuicOptions!

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

closeSessionsOnIpChange

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

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
fun delayJobsWithAvailableSpdySession(
    delayJobsWithAvailableSpdySession: Boolean
): QuicOptions.Builder!

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
fun enableTlsZeroRtt(enableTlsZeroRtt: Boolean): QuicOptions.Builder!

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
fun goawaySessionsOnIpChange(goawaySessionsOnIpChange: Boolean): QuicOptions.Builder!

Menetapkan apakah sesi QUIC harus dihentikan saat alamat IP berubah.

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

Hasil
QuicOptions.Builder!

builder untuk merangkai

increaseBrokenServicePeriodExponentially

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

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
fun retryWithoutAltSvcOnQuicErrors(retryWithoutAltSvcOnQuicErrors: Boolean): QuicOptions.Builder!

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
fun setCryptoHandshakeTimeoutSeconds(cryptoHandshakeTimeoutSeconds: Long): QuicOptions.Builder!

Menetapkan waktu tunggu untuk handshake SSL koneksi.

Hasil
QuicOptions.Builder!

builder untuk merangkai

setHandshakeUserAgent

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

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)
fun setIdleConnectionTimeout(idleConnectionTimeout: Duration): QuicOptions.Builder!

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

Hasil
QuicOptions.Builder!

builder untuk merangkai

setIdleConnectionTimeoutSeconds

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

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

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

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
fun setInitialBrokenServicePeriodSeconds(
    initialBrokenServicePeriodSeconds: Long
): QuicOptions.Builder!

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
fun setPreCryptoHandshakeIdleTimeoutSeconds(
    preCryptoHandshakeIdleTimeoutSeconds: Long
): QuicOptions.Builder!

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

Hasil
QuicOptions.Builder!

builder untuk merangkai

setRetransmittableOnWireTimeoutMillis

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

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