WebRTC - WebRTC - Wikipedia
![]() | |
Původní autoři | Justin Uberti Peter Thatcher |
---|---|
První vydání | 2011 |
Stabilní uvolnění | 1.0[1] / 4. května 2018 |
Úložiště | webrtc |
Napsáno | C ++,[2] JavaScript |
Licence | Licence BSD |
webová stránka | webrtc |
WebRTC (Webová komunikace v reálném čase) je zdarma, open-source projekt, který poskytuje internetové prohlížeče a mobilní aplikace s reálný čas komunikace (RTC) prostřednictvím jednoduchého aplikační programovací rozhraní (API). Umožňuje přímou komunikaci audio a video komunikace uvnitř webových stránek peer-to-peer komunikace, což eliminuje potřebu instalace pluginy nebo si stáhněte nativní aplikace.[3] Podporováno Jablko, Google, Microsoft, Mozilla, a Opera, WebRTC je standardizováno prostřednictvím World Wide Web Consortium (W3C) a Pracovní skupina pro internetové inženýrství (IETF).[4]
Jejím posláním je „umožnit vývoj bohatých a vysoce kvalitních aplikací RTC pro prohlížeč, mobilní platformy a IoT zařízení a umožnit jim všem komunikovat prostřednictvím společné sady zařízení protokoly ".[4]
Dějiny
V květnu 2010 Google koupil Globální IP řešení nebo GIPS, a VoIP a video konference softwarová společnost, která vyvinula mnoho komponent požadovaných pro RTC, jako jsou kodeky a techniky potlačení ozvěny. Google otevřeně zajišťoval technologii GIPS a spolupracoval s příslušnými normalizačními orgány v EU IETF a W3C zajistit konsenzus odvětví.[5][6] V květnu 2011 Google vydal open-source projekt pro komunikaci v reálném čase založený na prohlížeči známý jako WebRTC.[7] Poté následovala pokračující práce na standardizaci příslušných protokoly v IETF[8] a rozhraní API prohlížeče ve W3C.[9]
V květnu 2011 Ericsson Laboratoře vytvořily první implementaci WebRTC pomocí upravené WebKit knihovna.[10] V říjnu 2011 W3C zveřejnil svůj první návrh specifikace.[11] Milníky WebRTC zahrnují první videohovor mezi prohlížeči (únor 2013), první datové přenosy mezi prohlížeči (únor 2014) a od července 2014 Google Hangouts bylo „nějakým způsobem“ využívající WebRTC.[12]
Návrh API W3C byl založen na předběžných pracích provedených v WHATWG.[13] Nazývalo se to ConnectionPeer API a na adrese byla vytvořena implementace konceptu před standardy Ericsson Laboratoře[14] Pracovní skupina WebRTC očekává, že se tato specifikace bude významně vyvíjet na základě:
- Výsledky probíhajících výměn v doprovodné skupině RTCWEB na adrese IETF[15] definovat množinu protokoly které spolu s tímto dokumentem definují komunikace v reálném čase ve webových prohlížečích. I když nikdo signalizační protokol není povinen, SIP přes Webové zásuvky (RFC 7118 ) se často používá částečně kvůli použitelnosti SIP na většinu předpokládaných komunikačních scénářů a dostupnosti softwaru typu open-source, jako je JsSIP.
- Problémy s ochranou soukromí které vznikají při odhalení místních schopností a místních streamů
- Technické diskuse v rámci skupiny, zejména o implementaci datových kanálů[16]
- Zkušenosti získané časným experimentováním
- Zpětná vazba od jiných skupin a jednotlivců
V listopadu 2017 byla specifikace WebRTC 1.0 převedena z pracovního návrhu na doporučení kandidáta.[17]
Přehled
Design
Mezi hlavní součásti WebRTC patří několik JavaScript API:
getUserMedia
získává zvuková a obrazová média (např. přístupem ke kameře a mikrofonu zařízení).[18]RTCPeerConnection
umožňuje audio a video komunikaci mezi kolegy. Vystupuje zpracování signálu, kodek zacházení, komunikace peer-to-peer, bezpečnost a šířka pásma řízení.[19]RTCDataChannel
umožňuje obousměrnou komunikaci libovolných dat mezi vrstevníky. Používá stejné API jako Webové zásuvky a má velmi nízkou hodnotu latence.[20]
WebRTC API také obsahuje statistickou funkci:
getStats
umožňuje webové aplikaci načíst sadu statistik o relacích WebRTC. Tyto statistické údaje jsou popsány v samostatném dokumentu W3C.[21]
WebRTC API zahrnuje žádná ustanovení pro signalizaci, to je objevování vrstevníků, ke kterým se mají připojit, a určení, jak mezi nimi navázat spojení. Použití aplikací Vytvoření interaktivního připojení pro připojení a nějak spravovat relace, případně se spoléhat na některou z Protokol zahájení relace, Extensible Messaging and Presence Protocol, Transport telemetrie pomocí služby Řízení front zpráv, Matice (protokol) nebo jiný protokol. Signalizace může záviset na jednom nebo více serverech.[22][23]
RFC 7874 vyžaduje implementace PCMA /PCMU (RFC 3551 ), Telefonní událost jako DTMF (RFC 4733 ), a Opus (RFC 6716 ) zvukové kodeky jako minimální schopnosti. Rozhraní API PeerConnection, datový kanál a prohlížeč médií jsou podrobně popsána ve W3C.
W3C vyvíjí ORTC (Object Real-Time Communications) pro WebRTC.[24]
Příklady
Ačkoli byl WebRTC původně vyvinut pro webové prohlížeče, má aplikace pro zařízení bez prohlížeče, včetně mobilních platforem a Zařízení IoT. Mezi příklady patří prohlížeč VoIP telefonování, nazývané také cloudové telefony nebo webové telefony, které umožňují uskutečňování a přijímání hovorů z webového prohlížeče a nahrazují požadavek na stažení a instalaci softwarového telefonu.[25]
Podpěra, podpora
WebRTC podporují následující prohlížeče:
- Stolní PC
- Microsoft Edge 12+[26]
- Google Chrome 28+
- Mozilla Firefox 22+[27]
- Safari 11+[28]
- Opera 18+[29]
- Vivaldi 1.9+
- Statečný
- Android
- Google Chrome 28+ (ve výchozím nastavení povoleno od 29)
- Mozilla Firefox 24+[30]
- Opera Mobile 12+
- Chrome OS
- Firefox OS
- BlackBerry 10
- iOS
- MobileSafari / WebKit (iOS 11 +)
- Tizen 3.0
GStreamer přímo poskytuje bezplatnou implementaci WebRTC.[31]
Obavy
V lednu 2015 TorrentFreak ohlásil vážnou bezpečnostní chybu v prohlížečích, které podporují WebRTC, a uvedl, že to ohrozilo zabezpečení VPN tunely odhalením pravdy IP adresa uživatele.[32] Požadavky na čtení IP adres nejsou viditelné v konzole pro vývojáře prohlížeče a nejsou většinou blokovány blokování reklam /Soukromí /bezpečnostní doplňky umožňující online sledování inzerenty a jinými subjekty navzdory preventivním opatřením[33] (nicméně uBlock Origin doplněk může tento problém vyřešit). Od září 2019 se tato chyba WebRTC stále objevuje na Firefoxu 69.x a stále ve výchozím nastavení vystavuje interní IP adresu uživatele webu.[34]
Viz také
- Globální IP řešení (GIPS)
- Transportní protokol v reálném čase (RTP)
- Protokol popisu relace (SDP)
- Brána WebRTC
Reference
- ^ „WebRTC 1.0: Komunikace v reálném čase mezi prohlížeči“. World Wide Web Consortium. 27. září 2018. Citováno 25. března 2019.
- ^ „Src / webrtc - Git at Google“.
- ^ Jak WebRTC přináší revoluci v telefonování. Blogs.trilogy-lte.com (21.02.2014). Citováno 2014-04-11.
- ^ A b „WebRTC“. WebRTC. Archivovány od originál dne 9. ledna 2018. Citováno 6. února 2018.
- ^ „Pocházejí komponenty WebRTC z akvizice společnosti Global IP Solutions společností Google?“. WebRTC. Citováno 6. února 2018.
- ^ Wauters, Robin (18. května 2010). „Google dává globální hotovostní nabídku IP 68,2 milionu dolarů“. TechCrunch. Citováno 6. února 2018.
- ^ Harald Alvestrand (2011-05-31). „Vydání zdrojového kódu WebRTC společností Google“. [email protected]. Citováno 2012-09-12.
- ^ Charta komunikace v reálném čase v pracovní skupině WEB-browsers (rtcweb)
- ^ „WebRTC 1.0: Komunikace mezi prohlížeči v reálném čase“. W3.org. Citováno 2012-09-12.
- ^ Stefan Håkansson; Stefan Ålund (26. května 2011). „Kromě HTML5: Experimentujte s komunikací v reálném čase v prohlížeči“. Blog Ericsson Research. Citováno 6. února 2018.
- ^ „WebRTC 1.0: Komunikace mezi prohlížeči v reálném čase (pracovní koncept W3C 27. října 2011)“. World Wide Web Consortium. 27. října 2011. Citováno 6. února 2018.
- ^ Nowak, Szymon. „WebRTC: mnohem více než videokonference“. GitHub. Citováno 6. února 2018.
- ^ "Úvod - HTML Standard". Whatwg.org. Citováno 2012-09-12.
- ^ „Beyond HTML5: Peer-to-Peer Conversational Video“. Labs.ericsson.com. Citováno 2012-09-12.
- ^ "Rtcweb stavové stránky". Tools.ietf.org. Citováno 2012-09-12.
- ^ "draft-jesup-rtcweb-data-protocol-00 - WebRTC Data Channel Protocol". Tools.ietf.org. Citováno 2012-09-12.
- ^ „WebRTC 1.0: Komunikace mezi prohlížeči v reálném čase (doporučení kandidáta W3C ze dne 2. listopadu 2017)“. 2. listopadu 2017.
- ^ „Media Capture and Streams: getUserMedia“. W3C. 03.09.2013. Citováno 2014-01-15.
- ^ „WebRTC: RTCPeerConnection Interface“. W3C. 10. 09. 2013. Citováno 2014-01-15.
- ^ „WebRTC: RTCDataChannel“. W3C. 10. 09. 2013. Citováno 2014-01-15.
- ^ „Identifikátory statistického rozhraní API WebRTC“. W3C. 2014-09-29.
- ^ Tsahi Levent-Levi (13. dubna 2020). „Server WebRTC: Co je to přesně?“. BlogGeek.me.
- ^ Tsahi Levent-Levi (13. listopadu 2014). „Matrix.org a WebRTC: Rozhovor s Matthewem Hodgsonem“. BlogGeek.me.
- ^ „W3C ORTC (Object Real-time Communications) Community Group“.
- ^ „Catch the Babelfish: Irish telco vymýšlí nový druh cloudového telefonu“. Listopad 2017.
- ^ „ORTC API je nyní k dispozici v Microsoft Edge“. Microsoft. 2015-09-18.
- ^ Poznámky k Firefoxu - Desktop. Mozilla.org (25.06.2013). Citováno 2014-04-11.
- ^ „Safari 11.0“. Apple Inc.. Citováno 6. června 2017.
- ^ Zprávy opery. blogs.opera.com (19. 11. 2013). Citováno 2015-09-17.
- ^ Poznámky k Firefoxu - Desktop. Mozilla.org (17. 9. 2013). Citováno 2014-08-04.
- ^ „Poznámky k verzi GStreamer 1.14“. gstreamer.freedesktop.org. Citováno 2019-12-19. od verze 1.14
- ^ Obrovská chyba zabezpečení prosakuje skutečné adresy IP uživatelů VPN TorrentFreak.com (2015-01-30). Citováno 2015-02-21.
- ^ STUN žádosti o IP adresu pro WebRTC Citováno 2015-02-21.
- ^ Raymond Hill (26. března 2016). „Zabránit úniku WebRTC z místní IP adresy“. uBlock Origin dokumentace. Citováno 1 zář 2016.
Další čtení
- Proust, S., vyd. (Květen 2016). Další zvukové kodeky WebRTC pro interoperabilitu. IETF. doi:10.17487 / RFC7875. RFC 7875. Citováno 2016-10-12.
- Valin, J. M .; Bran, C. (květen 2016). WebRTC zvukový kodek a požadavky na zpracování. IETF. doi:10.17487 / RFC7874. RFC 7874. Citováno 2016-10-12.
- Roach, A. B. (březen 2016). WebRTC zpracování videa a požadavky na kodek. IETF. doi:10.17487 / RFC7742. RFC 7742. Citováno 2016-10-12.
- Perumal, M .; Wing, D .; Ravindranath, R .; Reddy, T .; Thomson, M. (říjen 2015). Pomůcky pro procházení relací pro NAT (STUN) pro svěžest souhlasu. IETF. doi:10.17487 / RFC7675. RFC 7675. Citováno 2016-10-12.
- Holmberg, C .; Hakansson, S .; Eriksson, G. (březen 2015). Případy a požadavky na webovou komunikaci v reálném čase. IETF. doi:10.17487 / RFC7478. RFC 7478. Citováno 2016-10-12.