RTCIceCandidatePairStats

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Some parts of this feature may have varying levels of support.

Từ điển RTCIceCandidatePairStats trong WebRTC API được dùng để báo cáo các thống kê cung cấp thông tin về chất lượng và hiệu suất của một RTCPeerConnection khi đang kết nối và được cấu hình theo cặp ứng viên ICE đã chỉ định.

Bạn có thể lấy các thống kê bằng cách duyệt qua RTCStatsReport do RTCPeerConnection.getStats() trả về cho đến khi tìm được mục có type"candidate-pair".

Thuộc tính phiên bản

availableIncomingBitrate Optional

Một số biểu thị băng thông đến khả dụng của kết nối mạng. Thuộc tính này báo cáo tổng số bit mỗi giây khả dụng cho tất cả các luồng RTP đến của cặp ứng viên. Không tính kích thước phần overhead của giao thức IP, TCP hay UDP.

availableOutgoingBitrate Optional

Một số biểu thị băng thông đi xấp xỉ khả dụng của kết nối mạng. Thuộc tính này báo cáo tổng số bit mỗi giây khả dụng cho tất cả các luồng RTP đi của cặp ứng viên. Không tính kích thước phần overhead của giao thức IP, TCP hay UDP.

bytesDiscardedOnSend Optional Experimental

Một số nguyên biểu thị tổng số byte bị loại bỏ do lỗi socket trên cặp ứng viên này.

bytesReceived Optional

Một số nguyên biểu thị tổng số byte dữ liệu đã nhận trên cặp ứng viên này.

bytesSent Optional

Một số nguyên biểu thị tổng số byte dữ liệu đã gửi trên cặp ứng viên này (không bao gồm header, phần đệm hoặc overhead giao thức khác).

consentRequestsSent Optional Experimental

Một số nguyên biểu thị tổng số yêu cầu chấp thuận STUN đã gửi trên cặp ứng viên này.

currentRoundTripTime Optional

Một số biểu thị tổng thời gian tính bằng giây đã trôi qua giữa lần gửi yêu cầu STUN gần nhất và nhận được phản hồi. Có thể dựa trên các yêu cầu liên quan đến xác nhận quyền mở kết nối.

lastPacketReceivedTimestamp Optional

Giá trị DOMHighResTimeStamp cho biết thời điểm gói dữ liệu cuối cùng được đầu cục bộ nhận từ đầu từ xa cho cặp ứng viên này. Không ghi lại dấu thời gian cho các gói STUN.

lastPacketSentTimestamp Optional

Giá trị DOMHighResTimeStamp cho biết thời điểm gói dữ liệu cuối cùng được đầu cục bộ gửi đến đầu từ xa cho cặp ứng viên này. Không ghi lại dấu thời gian cho các gói STUN.

localCandidateId Optional

Một chuỗi biểu thị ID duy nhất tương ứng với RTCIceCandidate từ dữ liệu trong đối tượng RTCIceCandidateStats cung cấp thống kê cho ứng viên cục bộ của cặp ứng viên.

nominated Optional

Giá trị Boolean; nếu là true, cặp ứng viên được mô tả bởi đối tượng này đã được đề xuất để sử dụng và sẽ (hoặc đã) được dùng nếu mức ưu tiên của nó cao nhất trong số các cặp ứng viên được đề xuất. Xem RFC 5245, section 7.1.3.2.4 để biết thêm chi tiết.

packetsDiscardedOnSend Optional Experimental

Một số nguyên biểu thị tổng số gói dữ liệu bị loại bỏ do lỗi socket trên cặp ứng viên này.

packetsReceived Optional Experimental

Một số nguyên biểu thị tổng số gói dữ liệu đã nhận trên cặp ứng viên này.

packetsSent Optional Experimental

Một số nguyên biểu thị tổng số gói dữ liệu đã gửi trên cặp ứng viên này.

remoteCandidateId Optional

Một chuỗi chứa ID duy nhất tương ứng với ứng viên từ xa, là dữ liệu đã được dùng để xây dựng đối tượng RTCIceCandidateStats mô tả đầu từ xa của kết nối.

requestsReceived Optional

Một số nguyên biểu thị tổng số yêu cầu kiểm tra kết nối đã nhận, bao gồm cả các lần truyền lại. Giá trị này bao gồm cả kiểm tra kết nối và kiểm tra chấp thuận STUN.

requestsSent Optional

Một số nguyên biểu thị tổng số yêu cầu kiểm tra kết nối đã gửi, không bao gồm các lần truyền lại.

responsesReceived Optional

Một số nguyên biểu thị tổng số phản hồi kiểm tra kết nối đã nhận.

responsesSent Optional

Một số nguyên biểu thị tổng số phản hồi kiểm tra kết nối đã gửi. Bao gồm cả phản hồi cho yêu cầu kiểm tra kết nối lẫn yêu cầu chấp thuận STUN.

state Optional

Một chuỗi cho biết trạng thái kết nối giữa hai ứng viên.

totalRoundTripTime Optional

Một số cho biết tổng thời gian tính bằng giây đã trôi qua giữa các lần gửi yêu cầu STUN và nhận phản hồi cho tất cả các yêu cầu đó từ trước đến nay trên cặp ứng viên này. Bao gồm cả kiểm tra kết nối và kiểm tra chấp thuận. Bạn có thể tính thời gian khứ hồi (RTT) trung bình bằng cách chia giá trị này cho responsesReceived.

transportId Optional

Một chuỗi xác định duy nhất RTCIceTransport đã được kiểm tra để lấy các thống kê liên quan đến truyền tải (như trong RTCTransportStats) được dùng để tạo đối tượng này.

Thuộc tính phiên bản chung

Các thuộc tính sau đây có ở tất cả đối tượng thống kê WebRTC.

id

Một chuỗi xác định duy nhất đối tượng đang được theo dõi để tạo ra tập hợp thống kê này.

timestamp

Đối tượng DOMHighResTimeStamp cho biết thời điểm mẫu được lấy cho đối tượng thống kê này.

type

Chuỗi có giá trị "candidate-pair", cho biết loại thống kê mà đối tượng chứa.

Thuộc tính đã lỗi thời

Các thuộc tính sau đây đã bị xóa khỏi đặc tả và không nên được sử dụng nữa. Bạn nên cập nhật code hiện có để tránh dùng chúng càng sớm càng tốt. Xem bảng tương thích để biết chi tiết về trình duyệt nào hỗ trợ và trong phiên bản nào.

priority Deprecated Optional Non-standard

Giá trị số nguyên cho biết mức ưu tiên của cặp ứng viên.

readable Deprecated Optional Non-standard

Giá trị Boolean cho biết liệu có thể gửi dữ liệu qua kết nối được mô tả bởi cặp ứng viên hay không.

writable Deprecated Optional Non-standard

Giá trị Boolean cho biết liệu có thể nhận dữ liệu trên kết nối được mô tả bởi cặp ứng viên hay không.

Thuộc tính không chuẩn

selected Non-standard Optional

Giá trị Boolean dành riêng cho Firefox; là true nếu cặp ứng viên được mô tả bởi đối tượng này đang được sử dụng. Cách chuẩn để xác định cặp ứng viên được chọn là tra cứu đối tượng thống kê có type là transport (RTCTransportStats), rồi xem thuộc tính selectedCandidatePairId của đối tượng đó.

Ghi chú sử dụng

Cặp ứng viên ICE đang hoạt động (nếu có) có thể được lấy bằng cách gọi phương thức getSelectedCandidatePair() của RTCIceTransport, phương thức này trả về đối tượng RTCIceCandidatePair hoặc null nếu không có cặp nào được chọn. Cặp ứng viên đang hoạt động mô tả cấu hình hiện tại của hai đầu RTCPeerConnection.

Mọi cặp ứng viên không phải cặp đang hoạt động của một transport sẽ bị xóa nếu RTCIceTransport thực hiện khởi động lại ICE, lúc đó state của transport ICE trở về new và quá trình đàm phán bắt đầu lại từ đầu. Để biết thêm thông tin, xem Khởi động lại ICE.

Ví dụ

Ví dụ này tính thời gian trung bình đã trôi qua giữa các lần kiểm tra kết nối.

js
if (rtcStats && rtcStats.type === "candidate-pair") {
  let elapsed =
    (rtcStats.lastRequestTimestamp - rtcStats.firstRequestTimestamp) /
    rtcStats.requestsSent;

  console.log(`Average time between ICE connectivity checks: ${elapsed} ms.`);
}

Đoạn code bắt đầu bằng cách kiểm tra rtcStats xem type của nó có phải là candidate-pair không. Nếu có, ta biết rtcStats là đối tượng RTCIceCandidatePairStats. Sau đó ta tính thời gian trung bình đã trôi qua giữa các lần kiểm tra kết nối STUN và ghi thông tin đó ra log.

Thông số kỹ thuật

Specification
Identifiers for WebRTC's Statistics API
# dom-rtcstatstype-candidate-pair

Tương thích trình duyệt