StatsMonitor
连接统计与诊断监控器,自动采集 WebRTC 连接实时数据。通过 rtc.stats 访问。
导入
ts
import { StatsMonitor } from '@wetspace/wetrtc'构造函数
ts
new StatsMonitor(pc: RTCPeerConnection, options?: StatsMonitorOptions)StatsMonitorOptions
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
interval | number | 2000 | 采集间隔 (ms) |
idleInterval | number | 5000 | 连接后降频间隔 (ms) |
方法
start()
ts
start(): void开始采集统计。
stop()
ts
stop(): void停止采集统计。
updateOptions()
ts
updateOptions(options: StatsMonitorOptions): void动态更新采集配置。
ts
rtc.stats.updateOptions({ interval: 5000 })getSnapshot()
ts
getSnapshot(): StatsSnapshot | null获取当前快照(同步,不触发事件)。
getDiagnostics()
ts
getDiagnostics(): DiagnosticReport获取诊断报告。
ts
const report = rtc.stats.getDiagnostics()
if (!report.healthy) {
report.issues.forEach(issue => {
console.warn(`[${issue.severity}] ${issue.metric}: ${issue.suggestion}`)
})
}onStats()
ts
onStats(handler: (snapshot: StatsSnapshot) => void): () => void注册统计回调,返回取消监听的函数。
dispose()
ts
dispose(): void停止采集并释放资源。
类型
StatsSnapshot
| 字段 | 类型 | 说明 |
|---|---|---|
timestamp | number | 采样时间戳 |
bytesSent | number | 已发送字节数 |
bytesReceived | number | 已接收字节数 |
packetsLost | number | 丢失包数 |
packetsLostPercent | number | 丢包率 (%) |
roundTripTime | number | 往返延迟 (ms) |
jitter | number | 抖动 (ms) |
frameRate | number | 发送帧率 (fps) |
resolution | string | 发送分辨率 |
codec | string | 视频编码 |
iceState | RTCIceConnectionState | ICE 连接状态 |
connectionState | RTCPeerConnectionState | 连接状态 |
DiagnosticReport
ts
interface DiagnosticReport {
healthy: boolean
issues: DiagnosticIssue[]
summary: string
}
interface DiagnosticIssue {
severity: 'warning' | 'error'
metric: string
value: number | string
threshold: number | string
suggestion: string
}