QuicOptions.Builder

public class QuicOptions.Builder


Trình tạo cho QuicOptions.

Tóm tắt

Phương thức 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
@QuicOptions.Experimental
closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

Đặ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(
    boolean delayJobsWithAvailableSpdySession
)

Đặ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
@QuicOptions.Experimental
enableTlsZeroRtt(boolean enableTlsZeroRtt)

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

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

Đặ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(
    boolean increaseBrokenServicePeriodExponentially
)

Đặ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
@QuicOptions.Experimental
retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)

Đặ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
@QuicOptions.Experimental
setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)

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

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

Đặ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

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

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

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

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Đặ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(
    long initialBrokenServicePeriodSeconds
)

Đặ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(
    long preCryptoHandshakeIdleTimeoutSeconds
)

Đặ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(
    long retransmittableOnWireTimeoutMillis
)

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

Phương thức công khai

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

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
public QuicOptions.Builder addClientConnectionOption(String clientConnectionOption)

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
public QuicOptions.Builder addConnectionOption(String connectionOption)

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
public QuicOptions.Builder addEnabledQuicVersion(String enabledQuicVersion)

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
public QuicOptions.Builder addExtraQuicheFlag(String extraQuicheFlag)

Đặ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

public QuicOptions build()

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
public QuicOptions.Builder closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

Đặ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
public QuicOptions.Builder delayJobsWithAvailableSpdySession(
    boolean delayJobsWithAvailableSpdySession
)

Đặ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
public QuicOptions.Builder enableTlsZeroRtt(boolean enableTlsZeroRtt)

Đặ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
public QuicOptions.Builder goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)

Đặ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
public QuicOptions.Builder increaseBrokenServicePeriodExponentially(
    boolean increaseBrokenServicePeriodExponentially
)

Đặ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
public QuicOptions.Builder retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)

Đặ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
public QuicOptions.Builder setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)

Đặ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

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

Đặ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)
public QuicOptions.Builder setIdleConnectionTimeout(@NonNull Duration idleConnectionTimeout)

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

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

Đặ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

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

Đặ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
public QuicOptions.Builder setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

Đặ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
public QuicOptions.Builder setPreCryptoHandshakeIdleTimeoutSeconds(
    long preCryptoHandshakeIdleTimeoutSeconds
)

Đặ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
public QuicOptions.Builder setRetransmittableOnWireTimeoutMillis(
    long retransmittableOnWireTimeoutMillis
)

Đặ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