QuicOptions.Builder

class QuicOptions.Builder


Trình tạo cho QuicOptions.

Tóm tắt

Hàm công khai

QuicOptions.Builder!

Thêm một máy chủ lưu trữ vào danh sách cho phép QUIC.

QuicOptions.Builder!

Thêm thẻ QUIC để gửi trong các lựa chọn kết nối của quy trình bắt tay QUIC chỉ ảnh hưởng đến máy khách.

QuicOptions.Builder!

Thêm thẻ QUIC để gửi trong các lựa chọn kết nối của quy trình bắt tay QUIC.

QuicOptions.Builder!

Thêm một phiên bản QUIC vào danh sách các phiên bản QUIC cần bật.

QuicOptions.Builder!

Đặt một cờ QUICHE tuỳ ý.

QuicOptions!

Tạo và trả về thực thể QuicOptions cuối cùng, dựa trên các giá trị trong trình tạo này.

QuicOptions.Builder!

Đặt xem có nên đóng các phiên QUIC khi địa chỉ IP thay đổi hay không.

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

Đặt xem Cronet có nên đợi đường dẫn chính (thường là QUIC) sẵn sàng hay không, ngay cả khi có đường dẫn phụ để tiếp cận máy chủ (SPDY / HTTP2) sẵn sàng ngay lập tức.

QuicOptions.Builder!

Đặt xem có nên bật TLS với 0-RTT hay không.

QuicOptions.Builder!

Đặt xem các phiên QUIC có nên được goaway'd khi thay đổi địa chỉ IP hay không.

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

Đặt xem khoảng thời gian máy chủ bị lỗi có nên tăng theo cấp số nhân hay không.

QuicOptions.Builder!

Đặt xem có nên thử lại các yêu cầu không thành công do lỗi giao thức QUIC mà không cần dùng bất kỳ máy chủ alt-svc nào hay không.

QuicOptions.Builder!

Đặt thời gian chờ cho một cái bắt tay SSL kết nối.

QuicOptions.Builder!
setHandshakeUserAgent(handshakeUserAgent: String!)

Đặt tác nhân người dùng sẽ được dùng bên ngoài các yêu cầu HTTP (ví dụ: cho các bắt tay QUIC).

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

Giống như setIdleConnectionTimeoutSeconds nhưng sử dụng java.time.Duration.

QuicOptions.Builder!
setIdleConnectionTimeoutSeconds(idleConnectionTimeoutSeconds: Long)

Đặt thời gian không hoạt động tối đa cho một kết nối.

QuicOptions.Builder!
setInMemoryServerConfigsCacheSize(inMemoryServerConfigsCacheSize: Int)

Đặt số lượng cấu hình máy chủ (siêu dữ liệu như danh sách alt svc, liệu QUIC có được hỗ trợ hay không, v.v.) cần được lưu giữ trong bộ nhớ.

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

Đặt giá trị ban đầu mà Cronet không được cố gắng sử dụng QUIC cho một máy chủ nhất định sau khi phát hiện thấy máy chủ đó không hỗ trợ QUIC.

QuicOptions.Builder!
@QuicOptions.Experimental
setPreCryptoHandshakeIdleTimeoutSeconds(
    preCryptoHandshakeIdleTimeoutSeconds: Long
)

Đặt thời gian chờ tối đa cho một kết nối chưa hoàn tất quá trình bắt tay SSL.

QuicOptions.Builder!
@QuicOptions.Experimental
setRetransmittableOnWireTimeoutMillis(
    retransmittableOnWireTimeoutMillis: Long
)

Đặt thời gian tối đa mong muốn giữa các gói trên dây.

Hàm công khai

addAllowedQuicHost

fun addAllowedQuicHost(quicHost: String!): QuicOptions.Builder!

Thêm một máy chủ lưu trữ vào danh sách cho phép QUIC.

Nếu không có máy chủ lưu trữ nào được chỉ định, chức năng danh sách cho phép theo máy chủ lưu trữ sẽ bị vô hiệu hoá. Nếu không, Cronet sẽ chỉ sử dụng QUIC khi giao tiếp với các máy chủ trên danh sách cho phép.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

addClientConnectionOption

@QuicOptions.QuichePassthroughOption
fun addClientConnectionOption(clientConnectionOption: String!): QuicOptions.Builder!

Thêm thẻ QUIC để gửi trong các lựa chọn kết nối của quy trình bắt tay QUIC chỉ ảnh hưởng đến máy khách.

Hãy xem addConnectionOption để biết thêm chi tiết.

addConnectionOption

@QuicOptions.QuichePassthroughOption
fun addConnectionOption(connectionOption: String!): QuicOptions.Builder!

Thêm thẻ QUIC để gửi trong các lựa chọn kết nối của quy trình bắt tay QUIC.

Các thẻ QUIC phải được trình bày dưới dạng chuỗi có độ dài tối đa là 4 chữ cái (ví dụ: NBHD).

Vì các thẻ QUIC đang được phát triển tích cực và một số thẻ chỉ liên quan đến máy chủ, nên Cronet không cố gắng duy trì danh sách đầy đủ tất cả các cờ QUIC được hỗ trợ trong API. Các cờ. Bạn có thể xem các cờ mà QUICHE (một phương thức triển khai QUIC do Cronet và các máy chủ của Google sử dụng) hỗ trợ tại đây.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

addEnabledQuicVersion

@QuicOptions.QuichePassthroughOption
fun addEnabledQuicVersion(enabledQuicVersion: String!): QuicOptions.Builder!

Thêm một phiên bản QUIC vào danh sách các phiên bản QUIC cần bật.

Nếu không có phiên bản nào được chỉ định, Cronet sẽ sử dụng danh sách các phiên bản QUIC mặc định.

Định dạng phiên bản được chỉ định bằng QUICHE. Ngoài việc lọc ra các giá trị đã lỗi thời, Cronet không xử lý các phiên bản theo bất kỳ cách nào và chỉ cần truyền chúng đến QUICHE.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

addExtraQuicheFlag

@QuicOptions.QuichePassthroughOption
fun addExtraQuicheFlag(extraQuicheFlag: String!): QuicOptions.Builder!

Đặt một cờ QUICHE tuỳ ý. Cờ phải được truyền ở định dạng FLAG_NAME=FLAG_VALUE. Hãy xem toàn bộ mã nguồn QUICHE để biết danh sách đầy đủ các cờ.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

build

fun build(): QuicOptions!

Tạo và trả về thực thể QuicOptions cuối cùng, dựa trên các giá trị trong trình tạo này.

closeSessionsOnIpChange

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

Đặt xem có nên đóng các phiên QUIC khi địa chỉ IP thay đổi hay không.

Không sử dụng kết hợp với tính năng di chuyển kết nối (được định cấu hình bằng ConnectionMigrationOptions).

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

delayJobsWithAvailableSpdySession

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

Đặt xem Cronet có nên đợi đường dẫn chính (thường là QUIC) sẵn sàng hay không, ngay cả khi có đường dẫn phụ để tiếp cận máy chủ (SPDY / HTTP2) sẵn sàng ngay lập tức.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

enableTlsZeroRtt

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

Đặt xem có nên bật TLS với 0-RTT hay không.

0-RTT là một phương pháp tối ưu hoá hiệu suất giúp tránh thêm một chuyến khứ hồi khi tiếp tục kết nối với một máy chủ đã biết.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

goawaySessionsOnIpChange

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

Đặt xem các phiên QUIC có nên được goaway'd khi thay đổi địa chỉ IP hay không.

Không sử dụng kết hợp với tính năng di chuyển kết nối (được định cấu hình bằng ConnectionMigrationOptions).

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

increaseBrokenServicePeriodExponentially

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

Đặt xem khoảng thời gian máy chủ bị lỗi có nên tăng theo cấp số nhân hay không.

Nếu được đặt thành true, độ trễ ban đầu (có thể định cấu hình bằng setInitialBrokenServicePeriodSeconds) sẽ được tăng theo cấp số nhân cho các lần thử lại tiếp theo (SCALING_FACTOR^NUM_TRIES * delay). Nếu được đặt thành false, độ trễ sẽ tăng theo cấp số cộng (SCALING_FACTOR * NUM_TRIES * delay).

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

retryWithoutAltSvcOnQuicErrors

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

Đặt xem có nên thử lại các yêu cầu không thành công do lỗi giao thức QUIC mà không cần dùng bất kỳ máy chủ alt-svc nào hay không.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setCryptoHandshakeTimeoutSeconds

@QuicOptions.Experimental
fun setCryptoHandshakeTimeoutSeconds(cryptoHandshakeTimeoutSeconds: Long): QuicOptions.Builder!

Đặt thời gian chờ cho một cái bắt tay SSL kết nối.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setHandshakeUserAgent

fun setHandshakeUserAgent(handshakeUserAgent: String!): QuicOptions.Builder!

Đặt tác nhân người dùng sẽ được dùng bên ngoài các yêu cầu HTTP (ví dụ: cho các bắt tay QUIC).

Để đặt tác nhân người dùng mặc định cho các yêu cầu HTTP, hãy sử dụng setUserAgent.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setIdleConnectionTimeout

@RequiresApi(value = VERSION_CODES.O)
fun setIdleConnectionTimeout(idleConnectionTimeout: Duration): QuicOptions.Builder!

Giống như setIdleConnectionTimeoutSeconds nhưng sử dụng java.time.Duration.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setIdleConnectionTimeoutSeconds

fun setIdleConnectionTimeoutSeconds(idleConnectionTimeoutSeconds: Long): QuicOptions.Builder!

Đặt thời gian không hoạt động tối đa cho một kết nối. Giá trị thực cho thời gian chờ không hoạt động là giá trị tối thiểu của giá trị này và giá trị của máy chủ, đồng thời được thương lượng trong quá trình bắt tay. Do đó, quy tắc này chỉ áp dụng sau khi quá trình bắt tay hoàn tất. Nếu không phát hiện thấy hoạt động nào trên kết nối trong khoảng thời gian đã đặt, thì kết nối sẽ bị đóng.

Hãy xem RFC 9114, phần 5.1 để biết thêm thông tin chi tiết.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setInMemoryServerConfigsCacheSize

fun setInMemoryServerConfigsCacheSize(inMemoryServerConfigsCacheSize: Int): QuicOptions.Builder!

Đặt số lượng cấu hình máy chủ (siêu dữ liệu như danh sách alt svc, liệu QUIC có được hỗ trợ hay không, v.v.) cần được lưu giữ trong bộ nhớ.

Nếu bạn đặt đường dẫn lưu trữ (setStoragePath, Cronet cũng sẽ duy trì các cấu hình máy chủ trên ổ đĩa.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setInitialBrokenServicePeriodSeconds

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

Đặt giá trị ban đầu mà Cronet không được cố gắng sử dụng QUIC cho một máy chủ nhất định sau khi phát hiện thấy máy chủ đó không hỗ trợ QUIC.

Sau khi phát hiện thấy một máy chủ quảng cáo QUIC nhưng thực tế không sử dụng QUIC, Cronet sẽ đánh dấu máy chủ đó là bị hỏng và không cố gắng sử dụng QUIC khi giao tiếp với máy chủ trong một khoảng thời gian. Sau khi vượt qua điểm này, Cronet sẽ thử sử dụng lại QUIC. Điều này nhằm cân bằng lợi ích ngắn hạn (không có lý do gì để lãng phí tài nguyên khi cố gắng sử dụng QUIC nếu máy chủ bị hỏng) và lợi ích dài hạn (sự cố có thể chỉ là tạm thời, việc sử dụng QUIC thường có lợi).

Độ trễ sẽ tăng lên sau mỗi lần thử lại liên tiếp không thành công. Hãy xem increaseBrokenServicePeriodExponentially để biết chi tiết.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setPreCryptoHandshakeIdleTimeoutSeconds

@QuicOptions.Experimental
fun setPreCryptoHandshakeIdleTimeoutSeconds(
    preCryptoHandshakeIdleTimeoutSeconds: Long
): QuicOptions.Builder!

Đặt thời gian chờ tối đa cho một kết nối chưa hoàn tất quá trình bắt tay SSL.

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi

setRetransmittableOnWireTimeoutMillis

@QuicOptions.Experimental
fun setRetransmittableOnWireTimeoutMillis(
    retransmittableOnWireTimeoutMillis: Long
): QuicOptions.Builder!

Đặt thời gian tối đa mong muốn giữa các gói trên dây.

Khi vượt quá thời gian có thể truyền lại trên mạng, Cronet sẽ thăm dò chất lượng mạng bằng lưu lượng truy cập nhân tạo. Thời gian chờ ngắn hơn thường giúp phát hiện nhanh hơn một đường dẫn bị hỏng hoặc xuống cấp, nhưng cũng tiêu tốn nhiều tài nguyên hơn (pin, dữ liệu).

Giá trị trả về
QuicOptions.Builder!

trình tạo để xâu chuỗi