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 là "candidate-pair".
Thuộc tính phiên bản
availableIncomingBitrateOptional-
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.
availableOutgoingBitrateOptional-
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.
bytesDiscardedOnSendOptional 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.
bytesReceivedOptional-
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.
bytesSentOptional-
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).
consentRequestsSentOptional 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.
currentRoundTripTimeOptional-
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.
lastPacketReceivedTimestampOptional-
Giá trị
DOMHighResTimeStampcho 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. lastPacketSentTimestampOptional-
Giá trị
DOMHighResTimeStampcho 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. localCandidateIdOptional-
Một chuỗi biểu thị ID duy nhất tương ứng với
RTCIceCandidatetừ dữ liệu trong đối tượngRTCIceCandidateStatscung cấp thống kê cho ứng viên cục bộ của cặp ứng viên. nominatedOptional-
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. packetsDiscardedOnSendOptional 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.
packetsReceivedOptional 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.
packetsSentOptional 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.
remoteCandidateIdOptional-
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
RTCIceCandidateStatsmô tả đầu từ xa của kết nối. requestsReceivedOptional-
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.
requestsSentOptional-
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.
responsesReceivedOptional-
Một số nguyên biểu thị tổng số phản hồi kiểm tra kết nối đã nhận.
responsesSentOptional-
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.
stateOptional-
Một chuỗi cho biết trạng thái kết nối giữa hai ứng viên.
totalRoundTripTimeOptional-
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. transportIdOptional-
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ư trongRTCTransportStats) đượ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
DOMHighResTimeStampcho 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.
priorityDeprecated Optional Non-standard-
Giá trị số nguyên cho biết mức ưu tiên của cặp ứng viên.
readableDeprecated 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.
writableDeprecated 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
selectedNon-standard Optional-
Giá trị Boolean dành riêng cho Firefox; là
truenế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ínhselectedCandidatePairIdcủ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.
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> |