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
)

Cronet이 즉시 준비되는 서버 연결 보조 경로 (SPDY / HTTP2)가 있더라도 기본 경로 (일반적으로 QUIC)가 준비될 때까지 기다려야 하는지 설정합니다.

QuicOptions.Builder!

0-RTT를 사용하는 TLS를 사용 설정할지 여부를 설정합니다.

QuicOptions.Builder!

IP 주소 변경 시 QUIC 세션을 goaway'd해야 하는지 여부를 설정합니다.

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)

메모리에 보관해야 하는 서버 구성 (대체 서비스 목록, 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!

Cronet이 즉시 준비되는 서버 연결 보조 경로 (SPDY / HTTP2)가 있더라도 기본 경로 (일반적으로 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'd해야 하는지 여부를 설정합니다.

연결 마이그레이션 (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!

메모리에 보관해야 하는 서버 구성 (대체 서비스 목록, QUIC 지원 여부 등의 메타데이터)의 수를 설정합니다.

스토리지 경로가 설정된 경우 (setStoragePath) Cronet은 서버 구성을 디스크에 유지합니다.

반환
QuicOptions.Builder!

연결을 위한 빌더

setInitialBrokenServicePeriodSeconds

@QuicOptions.Experimental
fun setInitialBrokenServicePeriodSeconds(
    initialBrokenServicePeriodSeconds: Long
): QuicOptions.Builder!

서버의 QUIC 지원이 중단된 것으로 확인된 후 Cronet이 특정 서버에 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!

연결을 위한 빌더