RTCTransportStats
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Từ điển RTCTransportStats của WebRTC API cung cấp thông tin về transport (RTCDtlsTransport và RTCIceTransport bên dưới nó) được sử dụng bởi một cặp candidate cụ thể.
Tính năng BUNDLE là một phần mở rộng SDP cho phép đàm phán để sử dụng một transport duy nhất để gửi và nhận phương tiện được mô tả bởi nhiều mô tả phương tiện SDP.
Nếu endpoint từ xa biết về tính năng này, tất cả MediaStreamTrack và kênh dữ liệu sẽ được gom vào một transport duy nhất khi hoàn tất đàm phán.
Điều này đúng với các trình duyệt hiện tại, nhưng nếu kết nối với endpoint cũ không nhận biết BUNDLE, thì các transport riêng biệt có thể được sử dụng cho các phương tiện khác nhau.
Chính sách sử dụng trong đàm phán được cấu hình trong hàm khởi tạo RTCPeerConnection.
Các thống kê này có thể được lấy bằng cách duyệt qua RTCStatsReport được trả về bởi RTCPeerConnection.getStats() cho đến khi bạn tìm thấy báo cáo có type là transport.
Thuộc tính phiên bản
bytesReceivedOptional-
Tổng số byte payload đã nhận trên transport này (byte đã nhận, không bao gồm header, padding hoặc kiểm tra kết nối ICE).
bytesSentOptional-
Tổng số byte payload đã gửi trên transport này (byte đã gửi, không bao gồm header, padding hoặc kiểm tra kết nối ICE).
dtlsCipherOptional-
Chuỗi chỉ ra tên của cipher suite được sử dụng cho transport DTLS, chẳng hạn như
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256. dtlsRoleOptional Experimental-
Chuỗi chỉ ra vai trò DTLS của
RTCPeerConnectionliên quan. Đây là một trong các giá trị:client,server,unknown(trước khi đàm phán DTLS bắt đầu). dtlsState-
Chuỗi chỉ ra
trạng tháihiện tại củaRTCDtlsTransportbên dưới. Đây là một trong các giá trị:new,connecting,connected,closed,failed. iceLocalUsernameFragmentOptional Experimental-
Chuỗi chỉ ra username fragment cục bộ xác định duy nhất phiên tương tác ICE được quản lý bởi transport này.
iceRoleOptional Experimental-
Chuỗi chỉ ra
roleICE củaRTCIceTransportbên dưới. Đây là một trong các giá trị:controlled,controlling, hoặcunknown. iceStateOptional Experimental-
Chuỗi chỉ ra
trạng tháihiện tại củaRTCIceTransportbên dưới. Đây là một trong các giá trị:new,checking,connected,completed,disconnected,failed, hoặcclosed. localCertificateIdOptional-
Chuỗi chứa id của chứng chỉ cục bộ được sử dụng bởi transport này. Chỉ có mặt với các transport DTLS, và sau khi DTLS đã được đàm phán.
packetsReceivedOptional Experimental-
Tổng số gói tin đã nhận trên transport này.
packetsSentOptional Experimental-
Tổng số gói tin đã gửi qua transport này.
remoteCertificateIdOptional-
Chuỗi chứa id của chứng chỉ từ xa được sử dụng bởi transport này. Chỉ có mặt với các transport DTLS, và sau khi DTLS đã được đàm phán.
selectedCandidatePairChangesOptional-
Số lần cặp candidate được chọn của transport này đã thay đổi. Giá trị ban đầu là không và tăng lên bất cứ khi nào một cặp candidate được chọn hoặc bị mất.
selectedCandidatePairIdOptional-
Chuỗi chứa định danh duy nhất cho đối tượng đã được kiểm tra để tạo ra
RTCIceCandidatePairStatsliên quan đến transport này. srtpCipherOptional-
Chuỗi chỉ ra tên mô tả của protection profile được sử dụng cho transport Secure Real-time Transport Protocol (SRTP).
tlsVersionOptional-
Chuỗi chứa phiên bản TLS đã đàm phán. Có mặt với các transport DTLS, và chỉ tồn tại sau khi DTLS đã được đàm phán.
Thuộc tính phiên bản chung
Các thuộc tính sau đây chung cho tất cả các đối tượng thống kê WebRTC.
id-
Chuỗi xác định duy nhất đối tượng đang được giám sát để tạo ra tập hợp thống kê này.
timestamp-
Đối tượng
DOMHighResTimeStampchỉ ra thời điểm mẫu được lấy cho đối tượng thống kê này. type-
Chuỗi có giá trị
"transport", chỉ ra loại thống kê mà đối tượng chứa.
Ví dụ
Ví dụ này cho thấy một hàm trả về thống kê transport, hoặc null nếu không có thống kê nào được cung cấp.
Hàm chờ kết quả của lệnh gọi RTCPeerConnection.getStats() rồi duyệt qua RTCStatsReport được trả về để chỉ lấy các thống kê có kiểu "transport".
Sau đó nó trả về thống kê hoặc null, sử dụng dữ liệu trong báo cáo.
async function numberOpenConnections (peerConnection) {
const stats = await peerConnection.getStats();
let transportStats = null;
stats.forEach((report) => {
if (report.type === "transport") {
transportStats = report;
break;
}
});
return transportStats
}
Thông số kỹ thuật
| Specification |
|---|
| Identifiers for WebRTC's Statistics API> # dom-rtcstatstype-transport> |