QuicOptions.Builder

public 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
@QuicOptions.Experimental
closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

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

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

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

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

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

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

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

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

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

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

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

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

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

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

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

QuicOptions.Builder

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

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

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

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

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

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

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

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

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

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

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

เมธอดสาธารณะ

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

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

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

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

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

addClientConnectionOption

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

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

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

addConnectionOption

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

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

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

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

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

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

addEnabledQuicVersion

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

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

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

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

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

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

addExtraQuicheFlag

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

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

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

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

สร้าง

public QuicOptions build()

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

closeSessionsOnIpChange

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

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

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

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

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

delayJobsWithAvailableSpdySession

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

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

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

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

enableTlsZeroRtt

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

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

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

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

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

goawaySessionsOnIpChange

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

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

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

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

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

increaseBrokenServicePeriodExponentially

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

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

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

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

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

retryWithoutAltSvcOnQuicErrors

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

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

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

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

setCryptoHandshakeTimeoutSeconds

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

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

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

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

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

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

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

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

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

setIdleConnectionTimeout

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

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

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

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

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

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

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

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

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

setInMemoryServerConfigsCacheSize

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

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

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

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

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

setInitialBrokenServicePeriodSeconds

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

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

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

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

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

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

setPreCryptoHandshakeIdleTimeoutSeconds

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

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

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

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

setRetransmittableOnWireTimeoutMillis

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

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

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

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

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