Skip to content

StatsMonitor

连接统计与诊断监控器,自动采集 WebRTC 连接实时数据。通过 rtc.stats 访问。

导入

ts
import { StatsMonitor } from '@wetspace/wetrtc'

构造函数

ts
new StatsMonitor(pc: RTCPeerConnection, options?: StatsMonitorOptions)

StatsMonitorOptions

参数类型默认值说明
intervalnumber2000采集间隔 (ms)
idleIntervalnumber5000连接后降频间隔 (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

字段类型说明
timestampnumber采样时间戳
bytesSentnumber已发送字节数
bytesReceivednumber已接收字节数
packetsLostnumber丢失包数
packetsLostPercentnumber丢包率 (%)
roundTripTimenumber往返延迟 (ms)
jitternumber抖动 (ms)
frameRatenumber发送帧率 (fps)
resolutionstring发送分辨率
codecstring视频编码
iceStateRTCIceConnectionStateICE 连接状态
connectionStateRTCPeerConnectionState连接状态

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
}

Released under the MIT License.