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)

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

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

تضبط هذه السياسة وكيل المستخدم الذي سيتم استخدامه خارج طلبات 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 كسلاسل يصل طولها إلى أربعة أحرف (على سبيل المثال، NBHD).

بما أنّ علامات QUIC قيد التطوير النشط وبعضها لا صلة له إلا بالخادم، لا تحاول Cronet الاحتفاظ بقائمة كاملة بجميع علامات QUIC المتوافقة كجزء من واجهة برمجة التطبيقات. العلامات يمكنك العثور هنا على العلامات المتوافقة مع 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

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

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

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

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

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

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

المرتجعات
QuicOptions.Builder

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

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

تضبط هذه السياسة وكيل المستخدم الذي سيتم استخدامه خارج طلبات HTTP (على سبيل المثال، لعمليات المصافحة في QUIC).

لضبط وكيل المستخدم التلقائي لطلبات 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

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