RTCPeerConnectionStats
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since May 2023.
Dictionary RTCPeerConnectionStats của WebRTC API cung cấp thông tin về peer connection cấp cao (RTCPeerConnection).
Cụ thể, nó cung cấp số lượng kênh dữ liệu duy nhất đã được mở, và số lượng kênh đã mở đã bị đóng. Điều này cho phép tính toán số lượng kênh đang mở hiện tại.
Các số liệu thống kê này có thể được lấy bằng cách lặp RTCStatsReport được trả về bởi RTCPeerConnection.getStats() cho đến khi tìm thấy báo cáo với type là peer-connection.
Thuộc tính phiên bản
dataChannelsOpened-
Một giá trị số nguyên dương cho biết số lượng đối tượng
RTCDataChannelduy nhất đã vào trạng tháiopentrong suốt vòng đời của chúng. dataChannelsClosed-
Một giá trị số nguyên dương cho biết số lượng đối tượng
RTCDataChannelduy nhất đã rời trạng tháiopentrong suốt vòng đời của chúng (các kênh chuyển sangclosinghoặcclosedmà không bao giờ ở trạng tháiopenthì không được tính vào số này). Một kênh sẽ rời trạng tháiopennếu một trong hai đầu của kết nối hoặc giao thức truyền tải bên dưới bị đóng.
Thuộc tính phiên bản chung
Các thuộc tính sau là chung cho tất cả cá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 tập hợp thống kê này.
timestamp-
Một đối tượng
DOMHighResTimeStampcho biết thời gian mẫu được lấy cho đối tượng thống kê này. type-
Một chuỗi với giá trị
"peer-connection", cho biết 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ề tổng số kết nối đang mở, hoặc null nếu không có thống kê nào được cung cấp.
Hàm này có thể được gọi trong một vòng lặp, tương tự cách tiếp cận được sử dụng trong ví dụ RTCPeerConnection.getStats()
Hàm chờ kết quả của lời gọi RTCPeerConnection.getStats() và sau đó lặp RTCStatsReport được trả về để chỉ lấy các số liệu thống kê loại "peer-connection".
Sau đó nó trả về tổng số kênh đang mở, hoặc null, sử dụng dữ liệu trong báo cáo.
async function numberOpenConnections (peerConnection) {
const stats = await peerConnection.getStats();
let peerConnectionStats = null;
stats.forEach((report) => {
if (report.type === "peer-connection") {
peerConnectionStats = report;
break;
}
});
result = (typeof peerConnectionStats.dataChannelsOpened === 'undefined' || typeof peerConnectionStats.dataChannelsClosed=== 'undefined') ? null : peerConnectionStats.dataChannelsOpened - peerConnectionStats.dataChannelsClosed;
return result
}
Thông số kỹ thuật
| Specification |
|---|
| Identifiers for WebRTC's Statistics API> # dom-rtcstatstype-peer-connection> |