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!

يضبط هذا الإعداد المهلة المحددة لعملية تأكيد الاتصال عبر طبقة المقابس الآمنة.

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 المتوافقة كجزء من واجهة برمجة التطبيقات. العلامات يمكنك العثور هنا على العلامات المتوافقة مع 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!

أداة الإنشاء الخاصة بالربط

زيادة فترة الخدمة المعطّلة بشكل كبير

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

تحدّد هذه السمة ما إذا كان يجب أن تتزايد فترة الخادم المعطّل بشكل كبير.

في حال ضبطها على "صحيح"، سيتم تغيير التأخير الأوّلي (الذي يمكن ضبطه من خلال setInitialBrokenServicePeriodSeconds) بشكل أُسّي لعمليات إعادة المحاولة اللاحقة (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!

يضبط هذا الإعداد المهلة المحددة لعملية تأكيد الاتصال عبر طبقة المقابس الآمنة.

المرتجعات
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!

أداة الإنشاء الخاصة بالربط