WebRTC 實戰 (9) —— 多人通訊架構:Mesh, MCU 與 SFU
到目前為止,我們討論的都是「一對一」通訊。但當房間裡有 5 個人甚至 50 個人時,點對點全連接的 RTCPeerConnection 就會崩潰。本篇將帶你從架構的高度,看看 WebRTC 是如何「變大」的。
一、 三大架構圖解
1. Mesh (P2P 全連接)
每個人都與所有人連線。
- 優點:成本最低,延遲最低。
- 缺點:頻寬風暴。超過 5 人後,使用者的上傳頻寬會瞬間耗盡。
2. MCU (多點控制單元)
伺服器將所有人畫面「混成一張大圖」再發送。
- 優點:使用者壓力最小(一傳一收)。
- 缺點:伺服器運算成本極高,無法自訂畫面佈局。
3. SFU (選擇性轉發單元)
伺服器只負責轉發封包,不解碼。
- 優點:架構平衡,使用者上傳一條串流即可,擴展性最強。
二、 三種架構大比拼
| 特性 | Mesh (P2P) | MCU | SFU (主流) |
|---|---|---|---|
| 成本 | 極低 | 極高 | 中 (流量) |
| 使用者壓力 | 高 | 極低 | 中 |
| 延遲 | 最低 | 較高 | 低 |
| 擴展性 | 差 | 一般 | 極佳 |
總結
小規模(小於 4 人)優先用 Mesh 以節省成本,而大型會議或直播則必須藉助 SFU 伺服器進行高效分發。
下一章,我們將正式邁向 SFU 的核心:探索業界頂尖框架 Mediasoup 與 Janus。
️ 進階挑戰
為什麼現在的會議軟體(如 Google Meet)即使在只有 2 個人的時候,有時也會強迫你經過 SFU 伺服器而不使用 Mesh?(提示:想想看錄影、穩定性與切換網路的流暢度。)
延伸閱讀與資源
- Mediasoup Guide: SFU Design
- WebRTC.org: Connectivity Topologies