WebRTC 的故事:從 Flash 到瀏覽器即時通訊的革命
在 WebRTC 出現之前,要在瀏覽器上進行視訊通話,簡直是一場惡夢。
你需要安裝 Flash Player、Java Applet,或是下載各式各樣奇怪的 ActiveX 插件。即使你裝好了,你的朋友可能因為版本不對而無法看到你的畫面。這是一個被「插件 (Plugins)」統治的黑暗時代。
直到 2011 年,Google 的一項關鍵收購案,徹底改變了這一切。
一、 關鍵轉折點:Google 收購 GIPS
故事的起點要回到 1999 年,瑞典有一家名為 Global IP Solutions (GIPS) 的公司。他們專注於開發高品質的 VoIP (Voice over IP) 與視訊壓縮引擎。當時許多知名的通訊軟體(如早期的 Skype、Yahoo Messenger、AOL)背後其實都使用了 GIPS 的技術授權。
GIPS 擁有當時世界上最頂尖的即時音訊編解碼與回音消除技術,但這些技術是封閉且昂貴的。
6820 萬美元的豪賭
2010 年 5 月 18 日,Google 宣布以 6820 萬美元 收購 GIPS。
當時業界還在猜測 Google 是否要推出自己的 Skype 殺手級應用。但 Google 做了一件更瘋狂的事:他們在一年後的 2011 年 5 月,將 GIPS 價值數千萬美元的核心技術開源 (Open Source),並命名為 WebRTC (Web Real-Time Communication)。
Google 的目標很明確:「讓瀏覽器具備原生的即時通訊能力,不需要任何插件。」
二、 雙巨頭的標準化之路:W3C 與 IETF
WebRTC 要成功,不能只有 Chrome 支援,必須成為 Web 標準。這涉及到兩個巨大的標準化組織:
- IETF (Internet Engineering Task Force):負責制定底層的通訊協定。例如:封包要怎麼送?加密要用什麼格式 (DTLS/SRTP)?NAT 該怎麼穿透 (STUN/TURN)?
- W3C (World Wide Web Consortium):負責定義瀏覽器的 JavaScript API。例如:
getUserMedia怎麼寫?RTCPeerConnection怎麼呼叫?
這是一場長達 10 年的馬拉松。
從 2011 年釋出草案開始,經歷了無數次的 API 修改與架構調整。直到 2021 年 1 月,W3C 終於正式宣佈 WebRTC 1.0 成為 W3C 推薦標準 (Recommendation);而在同一個月,IETF 也發布了 RFC 8825,確立了 WebRTC 的通訊協定群。
這標誌著 WebRTC 正式成熟,成為網路基礎建設的一部分。
三、 WebRTC 改變了什麼?
WebRTC 的出現,將即時通訊的門檻從「應用程式等級」降到了「網頁等級」。
Before & After
| 特性 | WebRTC 之前 (Flash/Plugins) | WebRTC 時代 |
|---|---|---|
| 安裝需求 | 需要安裝插件或專用軟體 | 零安裝,打開瀏覽器即用 |
| 通訊延遲 | 較高 (經過伺服器轉發) | 極低 (P2P 直連) |
| 開發難度 | 需懂 C++ 或特定私有協定 | 只要懂 JavaScript |
| 安全性 | 插件漏洞多,安全性參差不齊 | 強制加密 (DTLS/SRTP),HTTPS 必須 |
| 生態系 | 封閉生態 | 開放標準,跨平台 (PC/Mobile/IoT) |
四、 核心三劍客
WebRTC 雖然底層複雜,但對開發者來說,主要由三個核心 API 組成:
- MediaStream (
getUserMedia):這就是我們的「眼睛」與「耳朵」。負責獲取攝影機與麥克風的權限與資料流。 - RTCPeerConnection:這是 WebRTC 的「心臟」。負責建立 P2P 連線、處理 NAT 穿越、頻寬偵測與編碼協商。
- RTCDataChannel:這是一條「萬能通道」。除了影音,你還可以傳送任意的二進位資料(檔案、遊戲狀態、聊天訊息),而且同樣享受 P2P 的低延遲與加密特性。
總結
WebRTC 不僅僅是一個技術,它代表了網路通訊的一次民主化。它讓任何一位 Web 開發者,都能在幾行程式碼內,建構出世界級的視訊通話應用。
在這個專題中,我們將不會只是紙上談兵。我們將這段歷史化為程式碼,從零開始打造屬於你自己的即時通訊應用。
| 關鍵字 | 說明 |
|---|---|
| GIPS | Global IP Solutions,WebRTC 的前身技術擁有者。 |
| P2P | Peer-to-Peer,點對點直接傳輸,不經伺服器轉發 (理想狀況)。 |
| Signaling | 信令,WebRTC 唯一沒定義的部分,需開發者自行實作 (交換 SDP 用)。 |
TIP
現在是學習 WebRTC 最好的時機:隨著 5G 與遠端工作的普及,即時通訊的需求呈現爆炸性成長。掌握 WebRTC,等於掌握了通往元宇宙與即時互動應用的鑰匙。