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)

IP 주소 변경 시 QUIC 세션을 닫을지 여부를 설정합니다.

QuicOptions.Builder
@QuicOptions.Experimental
delayJobsWithAvailableSpdySession(
    boolean delayJobsWithAvailableSpdySession
)

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

QuicOptions.Builder
@QuicOptions.Experimental
enableTlsZeroRtt(boolean enableTlsZeroRtt)

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

QuicOptions.Builder
@QuicOptions.Experimental
goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)

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

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 핸드셰이크의 제한 시간을 설정합니다.

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

HTTP 요청 외부에서 사용할 사용자 에이전트를 설정합니다 (예: QUIC 핸드셰이크).

QuicOptions.Builder

setIdleConnectionTimeoutSeconds와 동일하지만 java.time.Duration을 사용합니다.

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

연결의 최대 유휴 시간을 설정합니다.

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

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

QuicOptions.Builder
@QuicOptions.Experimental
setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

서버의 QUIC 지원이 중단된 것으로 확인된 후 Cronet이 특정 서버에 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 태그는 최대 4글자 길이의 문자열로 표시되어야 합니다 (예: NBHD).

QUIC 태그는 활발히 개발 중이며 일부는 서버에만 관련이 있으므로 Cronet은 API의 일부로 지원되는 모든 QUIC 플래그의 전체 목록을 유지하려고 시도하지 않습니다. 플래그입니다. Cronet 및 Google 서버에서 사용하는 QUIC 구현인 QUICHE에서 지원하는 플래그는 여기에서 확인할 수 있습니다.

반환
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

연결을 위한 빌더

build

public QuicOptions build()

이 빌더의 값을 기반으로 최종 QuicOptions 인스턴스를 만들어 반환합니다.

closeSessionsOnIpChange

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

IP 주소 변경 시 QUIC 세션을 닫을지 여부를 설정합니다.

연결 마이그레이션 (ConnectionMigrationOptions을 사용하여 구성)과 함께 사용하지 마세요.

반환
QuicOptions.Builder

연결을 위한 빌더

delayJobsWithAvailableSpdySession

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

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

반환
QuicOptions.Builder

연결을 위한 빌더

enableTlsZeroRtt

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

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

0-RTT는 알려진 서버에 대한 연결을 재개할 때 추가 왕복을 방지하는 성능 최적화입니다.

반환
QuicOptions.Builder

연결을 위한 빌더

goawaySessionsOnIpChange

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

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

연결 마이그레이션 (ConnectionMigrationOptions을 사용하여 구성)과 함께 사용하지 마세요.

반환
QuicOptions.Builder

연결을 위한 빌더

increaseBrokenServicePeriodExponentially

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

손상된 서버 기간이 지수적으로 확장되어야 하는지 여부를 설정합니다.

true로 설정하면 초기 지연 (setInitialBrokenServicePeriodSeconds로 구성 가능)이 후속 재시도 (SCALING_FACTOR^NUM_TRIES * delay)에 대해 지수적으로 조정됩니다. false인 경우 지연이 선형으로 조정됩니다 (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)

연결 SSL 핸드셰이크의 제한 시간을 설정합니다.

반환
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)

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

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

반환
QuicOptions.Builder

연결을 위한 빌더

setInitialBrokenServicePeriodSeconds

@QuicOptions.Experimental
public QuicOptions.Builder setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

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

연결을 위한 빌더