WebRTC 實戰 (8) —— WebRTC-Internals:專業級除錯與監控
在開發 WebRTC 應用時,你一定會遇到這些問題:「畫面卡住了?」、「聲音斷斷續續!」。傳統的 console.log 無法告訴你原因,這時我們需要祭出 Chrome 隱藏的神器:chrome://webrtc-internals/。
一、 如何開啟與使用
在 Chrome 地址欄輸入 chrome://webrtc-internals/ 並按下 Enter。只要正在進行 WebRTC 連線,這個頁面就會自動跳出該連線的所有細節,是 WebRTC 開發者的「標準配備」。
二、 核心標籤:關鍵監控指標
1. 統計圖表 (Graphs)
- PacketsLost (掉包率):如果持續上升,通常代表頻寬不足或 UDP 被攔截。
- Jitter Buffer Delay (抖動延遲):如果不穩定,聲音聽起來會像機器人。
- Round Trip Time (RTT):往返延遲。理想值應低於 150ms。
- 码率 (Bitrate):當網速不佳時,BWE 會主動降低碼率以維持連線。
三、 常見問題診斷範例
- 有信令但沒畫面:檢查
iceCandidatePair。如果找不到 Selected pair,說明 ICE 流程失敗。 - 畫面解析度極低:檢查
frameWidthSent。如果遠低於輸入值,說明被 BWE 限速了。
總結
掌握了 WebRTC-Internals 工具,你就能從「盲目開發」進化為能精準診斷延遲、掉包與連線失敗原因的實戰工程師。
下一章,我們將探討多人通訊的高級架構:Mesh, MCU 與 SFU。
️ 進階挑戰
開啟兩個網頁,使用 PeerJS 建立通訊,並在 chrome://webrtc-internals/ 中觀察 Throttling (限速) 發生時 PacketsLost 與 RTT 的即時變化。
延伸閱讀與資源
- TestRTC: webrtc-internals guide
- MDN: RTCPeerConnection.getStats()