QuicOptions.Builder

class QuicOptions.Builder


‫Builder ל-QuicOptions.

סיכום

פונקציות ציבוריות

QuicOptions.Builder!

הוספת מארח לרשימת ההיתרים של QUIC.

QuicOptions.Builder!

מוסיף תג QUIC לשליחה באפשרויות החיבור של לחיצת היד של QUIC, שמשפיע רק על הלקוח.

QuicOptions.Builder!

הוספת תג QUIC לשליחה באפשרויות החיבור של לחיצת היד של QUIC.

QuicOptions.Builder!

הוספת גרסת QUIC לרשימת גרסאות QUIC להפעלה.

QuicOptions.Builder!

הגדרת דגל QUICHE שרירותי.

QuicOptions!

יוצרת ומחזירה את מופע QuicOptions הסופי, על סמך הערכים ב-builder הזה.

QuicOptions.Builder!

ההגדרה קובעת אם סשנים של QUIC ייסגרו כשכתובת ה-IP משתנה.

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

ההגדרה הזו קובעת אם Cronet צריך להמתין עד שהנתיב הראשי (בדרך כלל QUIC) יהיה מוכן, גם אם יש נתיב משני להגעה לשרת (SPDY / HTTP2) שמוכן באופן מיידי.

QuicOptions.Builder!

ההגדרה הזו קובעת אם להפעיל TLS עם 0-RTT.

QuicOptions.Builder!

ההגדרה קובעת אם סשנים של QUIC צריכים להיות מסוג goaway אם כתובת ה-IP משתנה.

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

הגדרה של קצב הגידול של תקופת השרת התקול.

QuicOptions.Builder!

המדיניות הזו קובעת אם בקשות שנכשלו בגלל שגיאות בפרוטוקול QUIC צריכות להישלח מחדש בלי להשתמש בשרתי alt-svc.

QuicOptions.Builder!

ההגדרה קובעת את הזמן הקצוב לתפוגה של לחיצת היד של חיבור SSL.

QuicOptions.Builder!
setHandshakeUserAgent(handshakeUserAgent: String!)

מגדיר את סוכן המשתמש שישמש מחוץ לבקשות 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 צריכים להיות מוצגים כמחרוזות באורך של עד ארבע אותיות (לדוגמה, NBHD).

תגי QUIC נמצאים בפיתוח פעיל וחלקם רלוונטיים רק לשרת, ולכן Cronet לא מנסה לשמור רשימה מלאה של כל דגלי QUIC הנתמכים כחלק מה-API. הסימונים. כאן אפשר למצוא את הדגלים שנתמכים על ידי 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!

הכלי ליצירת שרשור

לבנות גרסת build

fun build(): QuicOptions!

יוצרת ומחזירה את מופע QuicOptions הסופי, על סמך הערכים ב-builder הזה.

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 צריכים להיות מסוג goaway אם כתובת ה-IP משתנה.

אל תשתמשו בהגדרה הזו בשילוב עם העברת חיבור (שמוגדרת באמצעות ConnectionMigrationOptions).

החזרות
QuicOptions.Builder!

הכלי ליצירת שרשור

increaseBrokenServicePeriodExponentially

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

הגדרה של קצב הגידול של תקופת השרת התקול.

אם הערך הוא true, העיכוב הראשוני (שאפשר להגדיר באמצעות setInitialBrokenServicePeriodSeconds) יגדל באופן אקספוננציאלי בניסיונות חוזרים (SCALING_FACTOR^NUM_TRIES * delay). אם הערך הוא false, העיכוב יגדל באופן לינארי (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!

מגדיר את סוכן המשתמש שישמש מחוץ לבקשות HTTP (לדוגמה, ללחיצות ידיים של QUIC).

כדי להגדיר את סוכן המשתמש שמוגדר כברירת מחדל לבקשות 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!

הכלי ליצירת שרשור