سازنده‌ی کوئیک‌آپشن

public class QuicOptions.Builder


سازنده برای QuicOptions )

خلاصه

روش‌های عمومی

QuicOptions.Builder

یک میزبان را به لیست مجاز QUIC اضافه می‌کند.

QuicOptions.Builder

یک برچسب QUIC اضافه می‌کند تا گزینه‌های اتصال یک handshake QUIC را ارسال کند که فقط روی کلاینت تأثیر می‌گذارد.

QuicOptions.Builder

یک برچسب QUIC برای ارسال گزینه‌های اتصال یک handshake QUIC اضافه می‌کند.

QuicOptions.Builder

یک نسخه QUIC را به لیست نسخه‌های QUIC که باید فعال شوند اضافه می‌کند.

QuicOptions.Builder

یک پرچم دلخواه QUICHE تنظیم می‌کند.

QuicOptions
build ()

نمونه نهایی 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 handshake را تنظیم می‌کند.

QuicOptions.Builder
setHandshakeUserAgent ( String handshakeUserAgent)

عامل کاربری را برای استفاده در خارج از درخواست‌های HTTP (مثلاً برای دست‌دهی‌های QUIC) تنظیم می‌کند.

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

همانند 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 handshake را تکمیل نکرده است، تنظیم می‌کند.

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

حداکثر زمان مورد نظر بین بسته‌های روی سیم را تنظیم می‌کند.

روش‌های عمومی

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

یک میزبان را به لیست مجاز QUIC اضافه می‌کند.

اگر هیچ میزبانی مشخص نشده باشد، قابلیت فهرست مجاز برای هر میزبان غیرفعال است. در غیر این صورت، Cronet فقط هنگام صحبت با میزبان‌های موجود در فهرست مجاز از QUIC استفاده خواهد کرد.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

گزینه اتصال کلاینت را اضافه کنید

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

یک برچسب QUIC اضافه می‌کند تا گزینه‌های اتصال یک handshake QUIC را ارسال کند که فقط روی کلاینت تأثیر می‌گذارد.

برای جزئیات بیشتر به addConnectionOption مراجعه کنید.

گزینه اتصال را اضافه کنید

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

یک برچسب QUIC برای ارسال گزینه‌های اتصال یک handshake QUIC اضافه می‌کند.

برچسب‌های QUIC باید به صورت رشته‌هایی با حداکثر چهار حرف (برای مثال، NBHD ) نمایش داده شوند.

از آنجایی که تگ‌های QUIC در حال توسعه فعال هستند و برخی از آنها فقط به سرور مربوط می‌شوند، Cronet تلاشی برای نگهداری لیست کاملی از تمام پرچم‌های QUIC پشتیبانی‌شده به عنوان بخشی از API نمی‌کند. پرچم‌ها. پرچم‌های پشتیبانی‌شده توسط QUICHE، یک پیاده‌سازی QUIC که توسط سرورهای Cronet و Google استفاده می‌شود، را می‌توانید در اینجا بیابید.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

addEnabledQuicVersion

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

یک نسخه QUIC را به لیست نسخه‌های QUIC که باید فعال شوند اضافه می‌کند.

اگر هیچ نسخه‌ای مشخص نشده باشد، Cronet از فهرستی از نسخه‌های پیش‌فرض QUIC استفاده خواهد کرد.

قالب نسخه توسط QUICHE مشخص می‌شود. کرونت، جدا از فیلتر کردن مقادیری که منسوخ شده‌اند، به هیچ وجه نسخه‌ها را پردازش نمی‌کند و به سادگی آنها را به QUICHE منتقل می‌کند.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

addExtraQuicheFlag

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

یک پرچم دلخواه QUICHE تنظیم می‌کند. پرچم‌ها باید با فرمت FLAG_NAME=FLAG_VALUE ارسال شوند. برای مشاهده لیست کامل پرچم‌ها به کد پایه QUICHE مراجعه کنید.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

ساختن

public QuicOptions build()

نمونه نهایی QuicOptions را بر اساس مقادیر موجود در این سازنده ایجاد و برمی‌گرداند.

بستنجلساتدرآی‌پیتغییر

@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

سازنده برای زنجیر کردن

فعال کردنTlsZeroRtt

@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
)

تعیین می‌کند که آیا دوره خرابی سرور باید به صورت نمایی مقیاس‌بندی شود یا خیر.

اگر روی true تنظیم شود، تأخیر اولیه (که توسط setInitialBrokenServicePeriodSeconds قابل تنظیم است) برای تلاش‌های بعدی به صورت نمایی مقیاس‌بندی می‌شود ( SCALING_FACTOR^NUM_TRIES * delay ). اگر false باشد، تأخیر به صورت خطی مقیاس‌بندی می‌شود ( SCALING_FACTOR * NUM_TRIES * delay ).

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

خطاهای retryWithoutAltSvcOnQuic

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

تعیین می‌کند که آیا درخواست‌هایی که با خطاهای پروتکل QUIC ناموفق بوده‌اند، باید بدون استفاده از هیچ سرور alt-svc دوباره امتحان شوند یا خیر.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

تنظیم زمان‌بندی و زمان‌بندی CryptoHandshakeSeconds

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

زمان پایان اتصال SSL handshake را تنظیم می‌کند.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

عامل کاربری را برای استفاده در خارج از درخواست‌های HTTP (مثلاً برای دست‌دهی‌های QUIC) تنظیم می‌کند.

برای تنظیم عامل کاربری پیش‌فرض برای درخواست‌های HTTP، به جای آن setUserAgent استفاده کنید.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

تنظیم زمان اتصال غیرفعال

@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)

حداکثر زمان بیکاری برای یک اتصال را تنظیم می‌کند. مقدار واقعی برای زمان بیکاری، حداقل این مقدار و مقدار سرور است و در طول handshake مذاکره می‌شود. بنابراین، فقط پس از اتمام handshake اعمال می‌شود. اگر هیچ فعالیتی در اتصال برای مدت زمان تعیین شده شناسایی نشود، اتصال بسته می‌شود.

برای جزئیات بیشتر به 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 handshake را تکمیل نکرده است، تنظیم می‌کند.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن

setRetransmittableOnWireTimeoutMillis

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

حداکثر زمان مورد نظر بین بسته‌های روی سیم را تنظیم می‌کند.

وقتی زمان ارسال مجدد روی سیم از حد مجاز فراتر رود، Cronet با استفاده از ترافیک مصنوعی، کیفیت شبکه را بررسی می‌کند. زمان‌های وقفه کمتر معمولاً منجر به کشف سریع‌تر مسیر خراب یا در حال تخریب می‌شود، اما همچنین استفاده بیشتر از منابع (باتری، داده) را نیز به دنبال دارد.

بازگشت‌ها
QuicOptions.Builder

سازنده برای زنجیر کردن