Below you will find pages that utilize the taxonomy term “WebRTC”
June 22, 2024
WebRTC 運作原理入門:一次搞懂 SDP、ICE 與 NAT 穿透
Overview 工作上開始接觸 RTC SDK 相關的開發,想起過去有分享過 WebRTC 的運作原理,趁著週末有空檔來重新複習一下。
什麼是 WebRTC? WebRTC (Web Real-Time Communication) 是一個開放標準,用於在瀏覽器中不需安裝額外插件,即可實現實時音訊、視訊和數據傳輸。 基本上視訊會議都是透過 WebRTC 來實現,幾乎所有即時互動功能都會用到 WebRTC,而常見的的遊戲直播,基本上延遲會比較高,主要使用的技術應該是串流 (Streaming) 來實現,這邊要注意一下。
WebRTC 的核心概念 我們可以透過模擬兩位董事長要進行開會來學習 WebRTC 的運作原理:
告知秘書準備要開會: 創建 PeerConnection 實例,並設定 ICE 連線通道的名單 董事長請秘書把名片交給對方: 使用 SDP 交換彼此的資訊 確認要在哪個會議室進行談話: 使用 ICE 協定來確認彼此的網路狀態 雙方開始進行對話: 完成 P2P 連線,開始進行對話 1. RTCPeerConnection:建立連線的起點 秘書就像是 RTCPeerConnection 實例,它是 WebRTC 連線的核心。我們需要先建立這個實例,才能開始後續的所有步驟。
而 PeerConnection 實例的創建,通常會在準備建立連線時就創建,這樣才能確保後續交換資訊與連線順利進行。
在創建實例時,我們通常會提供一組 ICE 伺服器 (STUN/TURN) 的設定,這就像是告訴秘書可能有哪些會議地點可以選擇。
2. SDP (Session Description Protocol):交換名片 在對談中我們需要知道名字,對方講什麼語言,興趣是什麼,才能順利的進行對話,而這在 WebRTC 裡就是透過 SDP (Session Description Protocol) 來交換彼此的資訊。