WebRTC
WebRTC,名稱源自網頁即時通訊(英語:)的縮寫,是一个支援網頁浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被納入万维网联盟的W3C推荐标准[2][3][4]。
原作者 | Justin Uberti Peter Thatcher |
---|---|
首次发布 | 2011年 |
源代码库 | |
编程语言 | C++[1], Javascript |
许可协议 | BSD license |
网站 | webrtc |
瀏覽器支持
当前支持情况
WebRTC在以下浏览器版本中开始支持。
- 桌上PC端
- Microsoft Edge
- Google Chrome 23
- Mozilla Firefox 22[5]
- Opera 18[6]
- Safari 11[7](仍处于开发者预览阶段)
- Android端
- Google Chrome 28(从版本29开始默认开启)
- Mozilla Firefox 24[8]
- Opera Mobile 12
- Google Chrome OS
- Firefox OS
- iOS 11
- Blackberry 10 内置瀏覽器
- Bowser[9]
支持历史细节
- Google Chrome:2012年1月,將WebRTC整合進Dev Channel,同年6月又完成Stable Channel的20版的整合(2012年7月,PeerConnection與MediaStream仍必須透過
chrome://flags
來開啟)[10]。 - Mozilla Firefox:2012年初Mozilla整合WebRTC入Firefox Alpha,此一版本的Audio Mixing已完成於Media Stream[11]。
- 2012年4月,Mozilla展示Firefox中WebRTC的視訊對話[12]。
- 2013年6月,發佈22.0版本正式整合及支援WebRTC[13]。
- 2013年9月,發佈24.0版本,並宣佈Firefox for Android(行動版)正式整合及支援WebRTC[14]。
- Opera:2012年1月,Opera初步整合WebRTC。
- Internet Explorer:Microsoft開始開放API[15]。
- Ericsson:2012年11月,Ericsson Labs做出了全世界第一個可以支援WebRTC的手機浏览器[16]。
- SeaMonkey:2013年1月發佈的15.0版本初步整合WebRTC。
歷史
2010年5月,Google以6820万美元收购VoIP软件开发商Global IP Solutions的GIPS引擎[17][2][18],並改為名为“WebRTC”。WebRTC使用GIPS引擎,实现了基于网页的视频会议,並支持722,PCM,ILBC,ISAC等编码,同時使用谷歌自家的VP8影片解碼器;同時支持RTP/SRTP传输等。
2012年1月,谷歌已經把這款軟體整合到Chrome瀏覽器中。同時FreeSWITCH專案宣稱支援iSAC audio codec[19]。
组成
重要API
WebRTC原生APIs文件是基于WebRTC規格書[20]撰寫而成,這些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,即使用户已经使用虚拟私人网路。[21]
解决方案
Mozilla Firefox:在地址栏输入“about:config”,搜索“media.peerconnection.enabled”并双击将值改为“false”,WebRTC将被关闭。[22]
Google Chrome:在谷歌应用商店安装谷歌官方扩展“WebRTC Network Limiter”。[23]
其它方案
uBlock Origin:安装uBlock Origin并在设置中启用“避免WebRTC 泄露本地IP地址”可以避免本地IP泄露。但需注意的是,该方案不适用于Firefox 41(或更低)、uBlock Origin 1.3.3(或更低)版本用户,且该设置选项在本程序的1.38版本中被移除[24]
隐私獾:安装隐私獾并在设置中启用“避免 WebRTC 泄露本地 IP 地址 ”可以获得额外防护,但该选项在其2022年9月27日更新的新版本中移除。[25]
相關條目
- Jingle
- 安全實時傳輸協議
- DNS泄露
參考資料
- . [2018-09-09]. (原始内容存档于2018-04-23).
- . 2011-06-01 [2012-03-16]. (原始内容存档于2011-06-25).
- . [2012-03-16]. (原始内容存档于2011-06-04).
- . 2011-05-03 [2012-03-16]. (原始内容存档于2011-06-28).
- Firefox Notes - Desktop (页面存档备份,存于). Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
- Dev.Opera. My.opera.com. Retrieved on 2014-04-11.
- . [2017-06-10]. (原始内容存档于2021-08-20) (英语).
- Firefox Notes - Desktop (页面存档备份,存于). Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
- . [2015-01-01]. (原始内容存档于2020-08-08).
- . 2012-01-18 [2012-08-19]. (原始内容存档于2022-04-12).
- Paul, Ryan. . 2012-01-10 [2012-08-19]. (原始内容存档于2012-08-17).
- . 2012-04-10 [2012-08-19]. (原始内容存档于2021-07-14).
- . Mozilla.org. 2013-06-25 [2013-06-26]. (原始内容存档于2013-10-28).
- . Mozilla Taiwan. 2013-09-24 [2013-10-02]. (原始内容存档于2013-10-05).
- . [2012-08-19]. (原始内容存档于2016-03-07).
- . 2012-10-19 [2012-11-29]. (原始内容存档于2012-12-18).
- . [2012-03-16]. (原始内容存档于2011-06-04).
- . [2012-03-16]. (原始内容存档于2011-06-04).
- . 2012-01-24 [2012-03-16]. (原始内容存档于2012-02-04).
- . [2012-10-17]. (原始内容存档于2012-10-19).
- Ernesto. . torrentfreak. 2015年1月30日 [2018年3月1日]. (原始内容存档于2015年2月22日).
- Sphinx FreeBuf. . 比特网. 2015-02-06 [2018-03-01]. (原始内容存档于2018-08-16).
- . Chrome网上应用店.
- . github. [2018-03-01]. (原始内容存档于2016-02-21).
- EFForg. . Github. 2022-09-27 [2023-07-21]. (原始内容存档于2023-07-21) (英语).
外部連結
- Is WebRTC ready yet? (页面存档备份,存于) - 各家網頁瀏覽器對WebRTC支援程度
- IP/DNS检测 (页面存档备份,存于) - 检测您是否能够防御WebRTC泄露与DNS泄露并提供帮助