WebRTC

WebRTC，名稱源自網頁即時通訊（）的縮寫，是一个支援網頁浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被納入万维网联盟的W3C推荐标准。

瀏覽器支持
当前支持情况
WebRTC在以下浏览器版本中开始支持。
 桌上PC端
 Microsoft Edge
 Google Chrome 23
 Mozilla Firefox 22Firefox Notes - Desktop . Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
 Opera 18Dev.Opera. My.opera.com. Retrieved on 2014-04-11.
 Safari 11（仍处于开发者预览阶段）
 Android端
 Google Chrome 28（从版本29开始默认开启）
 Mozilla Firefox 24Firefox Notes - Desktop . Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
 Opera Mobile 12
 Google Chrome OS
 Firefox OS
 iOS 11
Blackberry 10 内置瀏覽器
 Bowser

支持历史细节
 Google Chrome：2012年1月，將WebRTC整合進Dev Channel，同年6月又完成Stable Channel的20版的整合（2012年7月，PeerConnection與MediaStream仍必須透過chrome://flags來開啟）。
 Mozilla Firefox：2012年初Mozilla整合WebRTC入Firefox Alpha，此一版本的Audio Mixing已完成於Media Stream。
 2012年4月，Mozilla展示Firefox中WebRTC的視訊對話。
 2013年6月，發佈22.0版本正式整合及支援WebRTC。
 2013年9月，發佈24.0版本，並宣佈Firefox for Android（行動版）正式整合及支援WebRTC。
 Opera：2012年1月，Opera初步整合WebRTC。
 Internet Explorer：Microsoft開始開放API。
 Ericsson：2012年11月，Ericsson Labs做出了全世界第一個可以支援WebRTC的手機浏览器。
 SeaMonkey：2013年1月發佈的15.0版本初步整合WebRTC。

 歷史 
2010年5月，Google以6820万美元收购VoIP软件开发商Global IP Solutions的GIPS引擎，並改為名为“WebRTC”。WebRTC使用GIPS引擎，实现了基于网页的视频会议，並支持722，PCM，ILBC，ISAC等编码，同時使用谷歌自家的VP8影片解碼器；同時支持RTP/SRTP传输等。

2012年1月，谷歌已經把這款軟體整合到Chrome瀏覽器中。同時FreeSWITCH專案宣稱支援iSAC audio codec。

 组成 

 影像引擎（VideoEngine）
 音效引擎（VoiceEngine）
 會議管理（Session Management）
 iSAC：音效壓縮
 VP8：Google自家的WebM项目的影片编解码器
 APIs（Native C++ API, Web API）

 重要API 
WebRTC原生APIs文件是基于WebRTC規格書撰寫而成，這些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三类。
Network Stream API
 MediaStream：MediaStream用来表示一个媒体数据流。
 MediaStreamTrack在浏览器中表示一个媒体源。
RTCPeerConnection
 RTCPeerConnection：一个RTCPeerConnection对象允许用户在两个浏览器之间直接通讯。
 RTCIceCandidate：表示一个ICE协议的候选者。
RTCIceServer：表示一个ICE Server。
Peer-to-peer Data API
DataChannel：数据通道（DataChannel）接口表示一个在两个节点之间的双向的数据通道。

 安全性 
漏洞

2015年，TorrentFreak报告了一个WebRTC的安全漏洞，该漏洞会致使安装有WebRTC的使用者泄露真实IP，即使用户已经使用虚拟私人网路。

解决方案Mozilla Firefox：在地址栏输入“about:config”，搜索“media.peerconnection.enabled”并双击将值改为“false”，WebRTC将被关闭。

Google Chrome：在谷歌应用商店安装谷歌官方扩展“WebRTC Network Limiter”。

其它方案

uBlock Origin：安装uBlock Origin并在设置中启用“避免WebRTC 泄露本地IP地址”可以避免本地IP泄露。但需注意的是，该方案不适用于Firefox 41（或更低）、uBlock Origin 1.3.3（或更低）版本用户，且该设置选项在本程序的1.38版本中被移除

隐私獾：安装隐私獾并在设置中启用“避免 WebRTC 泄露本地 IP 地址 ”可以获得额外防护，但该选项在其2022年9月27日更新的新版本中移除。

 相關條目 
Jingle
安全實時傳輸協議

 參考資料 

 外部連結 
 Is WebRTC ready yet?  - 各家網頁瀏覽器對WebRTC支援程度
 IP/DNS检测  - 检测您是否能够防御WebRTC泄露与DNS泄露并提供帮助

Category:網站開發
Category:W3C标准