QuicOptions.Builder

class QuicOptions.Builder


ผู้รับสร้างบ้านสำหรับ QuicOptions

สรุป

ฟังก์ชันสาธารณะ

QuicOptions.Builder!

เพิ่มโฮสต์ลงในรายการที่อนุญาตของ QUIC

QuicOptions.Builder!

เพิ่มแท็ก QUIC เพื่อส่งในตัวเลือกการเชื่อมต่อของแฮนด์เชค QUIC ซึ่งจะส่งผลต่อไคลเอ็นต์เท่านั้น

QuicOptions.Builder!

เพิ่มแท็ก QUIC เพื่อส่งในตัวเลือกการเชื่อมต่อของแฮนด์เชค QUIC

QuicOptions.Builder!

เพิ่มเวอร์ชัน QUIC ลงในรายการเวอร์ชัน QUIC ที่จะเปิดใช้

QuicOptions.Builder!

ตั้งค่าแฟล็ก QUICHE ที่กำหนดเอง

QuicOptions!

สร้างและแสดงผลอินสแตนซ์ QuicOptions สุดท้ายตามค่าในเครื่องมือสร้างนี้

QuicOptions.Builder!

กำหนดว่าจะปิดเซสชัน QUIC เมื่อมีการเปลี่ยนแปลงที่อยู่ IP หรือไม่

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

กำหนดว่า Cronet ควรรอให้เส้นทางหลัก (โดยปกติคือ QUIC) พร้อมหรือไม่ แม้ว่าจะมีเส้นทางรองในการเข้าถึงเซิร์ฟเวอร์ (SPDY / HTTP2) ที่พร้อมใช้งานทันทีก็ตาม

QuicOptions.Builder!

ตั้งค่าว่าจะเปิดใช้ TLS ที่มี 0-RTT หรือไม่

QuicOptions.Builder!

กำหนดว่าจะปิดเซสชัน QUIC เมื่อมีการเปลี่ยนแปลงที่อยู่ IP หรือไม่

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

กำหนดว่าระยะเวลาที่เซิร์ฟเวอร์ใช้งานไม่ได้ควรเพิ่มขึ้นแบบทวีคูณหรือไม่

QuicOptions.Builder!

กำหนดว่าจะลองส่งคำขอที่ล้มเหลวเนื่องจากข้อผิดพลาดของโปรโตคอล QUIC อีกครั้งโดยไม่ใช้เซิร์ฟเวอร์ alt-svc หรือไม่

QuicOptions.Builder!

กำหนดระยะหมดเวลาสำหรับการแฮนด์เชค SSL ของการเชื่อมต่อ

QuicOptions.Builder!
setHandshakeUserAgent(handshakeUserAgent: String!)

ตั้งค่า User Agent ที่จะใช้ภายนอกคำขอ HTTP (เช่น สำหรับการแฮนด์เชค QUIC)

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

เหมือนกับ setIdleConnectionTimeoutSeconds แต่ใช้ java.time.Duration

QuicOptions.Builder!
setIdleConnectionTimeoutSeconds(idleConnectionTimeoutSeconds: Long)

กำหนดเวลาที่ไม่มีการใช้งานสูงสุดสำหรับการเชื่อมต่อ

QuicOptions.Builder!
setInMemoryServerConfigsCacheSize(inMemoryServerConfigsCacheSize: Int)

กำหนดจำนวนการกำหนดค่าเซิร์ฟเวอร์ (ข้อมูลเมตา เช่น รายการ alt svc, รองรับ QUIC หรือไม่ ฯลฯ) ที่ควรเก็บไว้ในหน่วยความจำ

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

ตั้งค่าเริ่มต้นที่ Cronet ไม่ควรพยายามใช้ QUIC สำหรับเซิร์ฟเวอร์ที่กำหนดหลังจากที่การรองรับ QUIC ของเซิร์ฟเวอร์นั้นใช้งานไม่ได้

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

กำหนดเวลาไม่ได้ใช้งานสูงสุดสำหรับการเชื่อมต่อที่ยังไม่ได้ทำการแฮนด์เชค SSL ให้เสร็จสมบูรณ์

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

ตั้งค่าเวลาสูงสุดที่ต้องการระหว่างแพ็กเก็ตบนสาย

ฟังก์ชันสาธารณะ

addAllowedQuicHost

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

เพิ่มโฮสต์ลงในรายการที่อนุญาตของ QUIC

หากไม่ได้ระบุโฮสต์ ระบบจะปิดใช้ฟังก์ชันรายการที่อนุญาตต่อโฮสต์ มิเช่นนั้น Cronet จะใช้ QUIC เฉพาะเมื่อสื่อสารกับโฮสต์ในรายการที่อนุญาตเท่านั้น

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

addClientConnectionOption

@QuicOptions.QuichePassthroughOption
fun addClientConnectionOption(clientConnectionOption: String!): QuicOptions.Builder!

เพิ่มแท็ก QUIC เพื่อส่งในตัวเลือกการเชื่อมต่อของแฮนด์เชค QUIC ซึ่งจะส่งผลต่อไคลเอ็นต์เท่านั้น

ดูรายละเอียดเพิ่มเติมได้ที่ addConnectionOption

addConnectionOption

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

เพิ่มแท็ก QUIC เพื่อส่งในตัวเลือกการเชื่อมต่อของแฮนด์เชค QUIC

แท็ก QUIC ควรแสดงเป็นสตริงที่มีความยาวไม่เกิน 4 ตัวอักษร (เช่น NBHD)

เนื่องจากแท็ก QUIC อยู่ระหว่างการพัฒนาและบางแท็กเกี่ยวข้องกับเซิร์ฟเวอร์เท่านั้น Cronet จึงไม่ได้พยายามรักษารายการที่สมบูรณ์ของแฟล็ก QUIC ที่รองรับทั้งหมดเป็นส่วนหนึ่งของ API ธง ดู Flag ที่ QUICHE รองรับ ซึ่งเป็นการติดตั้งใช้งาน QUIC ที่ Cronet และเซิร์ฟเวอร์ของ Google ใช้ได้ที่นี่

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

addEnabledQuicVersion

@QuicOptions.QuichePassthroughOption
fun addEnabledQuicVersion(enabledQuicVersion: String!): QuicOptions.Builder!

เพิ่มเวอร์ชัน QUIC ลงในรายการเวอร์ชัน QUIC ที่จะเปิดใช้

หากไม่ได้ระบุเวอร์ชัน Cronet จะใช้รายการเวอร์ชัน QUIC เริ่มต้น

QUICHE เป็นตัวกำหนดรูปแบบเวอร์ชัน นอกเหนือจากการกรองค่าที่ทราบว่าล้าสมัยแล้ว Cronet จะไม่ประมวลผลเวอร์ชันใดๆ และเพียงแค่ส่งต่อค่าเหล่านั้นไปยัง QUICHE

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

addExtraQuicheFlag

@QuicOptions.QuichePassthroughOption
fun addExtraQuicheFlag(extraQuicheFlag: String!): QuicOptions.Builder!

ตั้งค่าแฟล็ก QUICHE ที่กำหนดเอง ควรส่งแฟล็กในรูปแบบ FLAG_NAME=FLAG_VALUE ดูรายการทั้งหมดของฟีเจอร์แฟล็กได้ที่ฐานโค้ด QUICHE

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

สร้าง

fun build(): QuicOptions!

สร้างและแสดงผลอินสแตนซ์ QuicOptions สุดท้ายตามค่าในเครื่องมือสร้างนี้

closeSessionsOnIpChange

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

กำหนดว่าจะปิดเซสชัน QUIC เมื่อมีการเปลี่ยนแปลงที่อยู่ IP หรือไม่

อย่าใช้ร่วมกับการย้ายข้อมูลการเชื่อมต่อ (กำหนดค่าโดยใช้ ConnectionMigrationOptions)

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

delayJobsWithAvailableSpdySession

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

กำหนดว่า Cronet ควรรอให้เส้นทางหลัก (โดยปกติคือ QUIC) พร้อมหรือไม่ แม้ว่าจะมีเส้นทางรองในการเข้าถึงเซิร์ฟเวอร์ (SPDY / HTTP2) ที่พร้อมใช้งานทันทีก็ตาม

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

enableTlsZeroRtt

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

ตั้งค่าว่าจะเปิดใช้ TLS ที่มี 0-RTT หรือไม่

0-RTT คือการเพิ่มประสิทธิภาพที่หลีกเลี่ยงการส่งข้อมูลแบบไป-กลับเพิ่มเติมเมื่อกลับมาเชื่อมต่อกับเซิร์ฟเวอร์ที่รู้จัก

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

goawaySessionsOnIpChange

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

กำหนดว่าจะปิดเซสชัน QUIC เมื่อมีการเปลี่ยนแปลงที่อยู่ IP หรือไม่

อย่าใช้ร่วมกับการย้ายข้อมูลการเชื่อมต่อ (กำหนดค่าโดยใช้ ConnectionMigrationOptions)

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

increaseBrokenServicePeriodExponentially

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

กำหนดว่าระยะเวลาที่เซิร์ฟเวอร์ใช้งานไม่ได้ควรเพิ่มขึ้นแบบทวีคูณหรือไม่

หากตั้งค่าเป็นจริง ระบบจะปรับขนาดการหน่วงเวลาเริ่มต้น (กำหนดค่าได้โดย setInitialBrokenServicePeriodSeconds) แบบทวีคูณสำหรับการลองใหม่ครั้งต่อๆ ไป (SCALING_FACTOR^NUM_TRIES * delay) หากตั้งค่าเป็นเท็จ ระบบจะปรับขนาดการหน่วงเวลาแบบเชิงเส้น (SCALING_FACTOR * NUM_TRIES * delay)

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

retryWithoutAltSvcOnQuicErrors

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

กำหนดว่าจะลองส่งคำขอที่ล้มเหลวเนื่องจากข้อผิดพลาดของโปรโตคอล QUIC อีกครั้งโดยไม่ใช้เซิร์ฟเวอร์ alt-svc หรือไม่

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setCryptoHandshakeTimeoutSeconds

@QuicOptions.Experimental
fun setCryptoHandshakeTimeoutSeconds(cryptoHandshakeTimeoutSeconds: Long): QuicOptions.Builder!

กำหนดระยะหมดเวลาสำหรับการแฮนด์เชค SSL ของการเชื่อมต่อ

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setHandshakeUserAgent

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

ตั้งค่า User Agent ที่จะใช้ภายนอกคำขอ HTTP (เช่น สำหรับการแฮนด์เชค QUIC)

หากต้องการตั้งค่า User Agent เริ่มต้นสำหรับคำขอ HTTP ให้ใช้ setUserAgent แทน

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setIdleConnectionTimeout

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

เหมือนกับ setIdleConnectionTimeoutSeconds แต่ใช้ java.time.Duration

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setIdleConnectionTimeoutSeconds

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

กำหนดเวลาที่ไม่มีการใช้งานสูงสุดสำหรับการเชื่อมต่อ ค่าจริงสำหรับการหมดเวลาเมื่อไม่มีการใช้งานคือค่าต่ำสุดของค่านี้และค่าของเซิร์ฟเวอร์ และจะมีการต่อรองในระหว่างการแฮนด์เชค ดังนั้นจึงจะมีผลหลังจากที่การแฮนด์เชคเสร็จสมบูรณ์แล้วเท่านั้น หากตรวจไม่พบกิจกรรมใดๆ ในการเชื่อมต่อตามระยะเวลาที่กำหนด ระบบจะปิดการเชื่อมต่อ

ดูรายละเอียดเพิ่มเติมได้ที่ RFC 9114 ส่วน 5.1

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setInMemoryServerConfigsCacheSize

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

กำหนดจำนวนการกำหนดค่าเซิร์ฟเวอร์ (ข้อมูลเมตา เช่น รายการ alt svc, รองรับ QUIC หรือไม่ ฯลฯ) ที่ควรเก็บไว้ในหน่วยความจำ

หากตั้งค่าเส้นทางการจัดเก็บ (setStoragePath, Cronet จะบันทึกการกำหนดค่าเซิร์ฟเวอร์ไว้ในดิสก์ด้วย

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setInitialBrokenServicePeriodSeconds

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

ตั้งค่าเริ่มต้นที่ Cronet ไม่ควรพยายามใช้ QUIC สำหรับเซิร์ฟเวอร์ที่กำหนดหลังจากที่การรองรับ QUIC ของเซิร์ฟเวอร์นั้นใช้งานไม่ได้

เมื่อ Cronet ตรวจพบว่าเซิร์ฟเวอร์โฆษณา QUIC แต่ไม่ได้ใช้จริง ระบบจะทําเครื่องหมายเซิร์ฟเวอร์ว่าใช้งานไม่ได้ และจะไม่พยายามใช้ QUIC เมื่อสื่อสารกับเซิร์ฟเวอร์เป็นระยะเวลาหนึ่ง เมื่อ Cronet ผ่านจุดนี้ไปแล้ว ก็จะลองใช้ QUIC อีกครั้ง ทั้งนี้เพื่อรักษาสมดุลระหว่างผลประโยชน์ระยะสั้น (ไม่มีประโยชน์ที่จะสิ้นเปลืองทรัพยากรเพื่อลองใช้ QUIC หากเซิร์ฟเวอร์เสีย) และระยะยาว (การหยุดทำงานอาจเป็นเพียงชั่วคราว การใช้ QUIC โดยทั่วไปเป็นประโยชน์)

ความล่าช้าจะเพิ่มขึ้นทุกครั้งที่ลองอีกครั้งติดต่อกันไม่สำเร็จ ดูรายละเอียดได้ที่ increaseBrokenServicePeriodExponentially

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setPreCryptoHandshakeIdleTimeoutSeconds

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

กำหนดเวลาไม่ได้ใช้งานสูงสุดสำหรับการเชื่อมต่อที่ยังไม่ได้ทำการแฮนด์เชค SSL ให้เสร็จสมบูรณ์

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง

setRetransmittableOnWireTimeoutMillis

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

ตั้งค่าเวลาสูงสุดที่ต้องการระหว่างแพ็กเก็ตบนสาย

เมื่อเวลาที่ส่งซ้ำได้ในสายเกินกำหนด Cronet จะตรวจสอบคุณภาพของเครือข่ายโดยใช้การรับส่งข้อมูลจำลอง โดยทั่วไปแล้ว การหมดเวลาที่สั้นลงจะทำให้ค้นพบเส้นทางที่เสียหรือเสื่อมสภาพได้เร็วขึ้น แต่ก็ทำให้ใช้ทรัพยากร (แบตเตอรี่ ข้อมูล) มากขึ้นด้วย

การคืนสินค้า
QuicOptions.Builder!

เครื่องมือสร้างสำหรับการเชื่อมโยง