Page 281 - Web性能权威指南
P. 281
第 1 8 章
WebRTC
Web Real-Time Communication(Web 实时通信,WebRTC)由一组标准、协议和
JavaScript API 组成,用于实现浏览器之间(端到端)的音频、视频及数据共享。
WebRTC 使得实时通信变成一种标准功能,任何 Web 应用都无需借助第三方插件和
专有软件,而是通过简单的 JavaScript API 即可利用。
要实现涵盖音频和视频的电话会议等完善、高品质的 RTC 应用,以及端到端的数据
交换,需要浏览器具备很多新功能:音频和视频处理能力、支持新应用 API、支持
好几种新网络协议。好在,浏览器把大多数复杂性抽象成了三个主要 API:
• MediaStream:获取音频和视频流;
• RTCPeerConnection:音频和视频数据通信;
• RTCDataChannel:任意应用数据通信。
全部功能实现起来只需十几行 JavaScript 代码,任何 Web 应用都可以立即支持全功
能的电话会议,以及端到端的数据交换。这是 WebRTC 的愿景和能力!可是,上述
API 只是冰山一角:发信号、成员发现、连接协商、安全性,以及多层协议,这些
还有更多组件的协同也是关键。
毫无疑问,WebRTC 的架构和协议也决定了其性能特点:连接准备延迟、协议
开销,还有交付语义,只是其中一部分。事实上,与其他浏览器通信机制不同,
WebRTC 通过 UDP 传输数据。不过,UDP 只是个起点,为了实现浏览器间实时通
信,还有很多超出原始 UDP 之外的技术。本章我们就详细地加以讨论。
271