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!

IP アドレスの変更時に QUIC セッションを閉じるかどうかを設定します。

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

すぐに使用できるサーバーへのセカンダリ パス(SPDY / HTTP2)がある場合でも、Cronet がプライマリ パス(通常は QUIC)の準備が整うまで待機するかどうかを設定します。

QuicOptions.Builder!

0-RTT で TLS を有効にするかどうかを設定します。

QuicOptions.Builder!

IP アドレスの変更時に QUIC セッションを goaway するかどうかを設定します。

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
)

サーバーの QUIC サポートが壊れていることが判明した後、Cronet が特定のサーバーで 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 タグは、4 文字以内の文字列(NBHD など)として表示する必要があります。

QUIC タグは開発中であり、一部はサーバーにのみ関連するため、Cronet は API の一部としてサポートされているすべての QUIC フラグの完全なリストを維持しようとしません。フラグ。Cronet と Google サーバーで使用される QUIC 実装である QUICHE でサポートされているフラグについては、こちらをご覧ください。

戻り値
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 インスタンスを作成して返します。

closeSessionsOnIpChange

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

IP アドレスの変更時に QUIC セッションを閉じるかどうかを設定します。

接続の移行(ConnectionMigrationOptions を使用して構成)と組み合わせて使用しないでください。

戻り値
QuicOptions.Builder!

チェーン用のビルダー

delayJobsWithAvailableSpdySession

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

すぐに使用できるサーバーへのセカンダリ パス(SPDY / HTTP2)がある場合でも、Cronet がプライマリ パス(通常は QUIC)の準備が整うまで待機するかどうかを設定します。

戻り値
QuicOptions.Builder!

チェーン用のビルダー

enableTlsZeroRtt

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

0-RTT で TLS を有効にするかどうかを設定します。

0-RTT は、既知のサーバーへの接続を再開する際の追加の往復を回避するパフォーマンス最適化です。

戻り値
QuicOptions.Builder!

チェーン用のビルダー

goawaySessionsOnIpChange

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

IP アドレスの変更時に QUIC セッションを goaway するかどうかを設定します。

接続の移行(ConnectionMigrationOptions を使用して構成)と組み合わせて使用しないでください。

戻り値
QuicOptions.Builder!

チェーン用のビルダー

increaseBrokenServicePeriodExponentially

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

サーバーの停止期間を指数関数的にスケーリングするかどうかを設定します。

true に設定すると、後続の再試行(SCALING_FACTOR^NUM_TRIES * delay)では初期遅延(setInitialBrokenServicePeriodSeconds で構成可能)が指数関数的にスケーリングされます。false に設定すると、遅延は線形にスケーリングされます(SCALING_FACTOR * NUM_TRIES * 遅延)。

戻り値
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!

サーバーの QUIC サポートが壊れていることが判明した後、Cronet が特定のサーバーで QUIC の使用を試行しないようにする初期値を設定します。

Cronet は、サーバーが QUIC をアドバタイズしているにもかかわらず、実際には 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!

チェーン用のビルダー