浏览器中的 WebRTC
WebRTC web 应用程序(通常以 HTML 和 JavaScript 的混合形式编写) 通过标准化的 WebRTC API 与 web 浏览器交互,从而允许它适当地利用和控制实时浏览器功能(参见 图1-3 )。WebRTC web 应用程序还使用 WebRTC 和其他标准化 api 与浏览器进行交互,既可以主动地(例如,查询浏览器功能),也可以被动地(例如,接收浏览器生成的通知)。
因此,WebRTC API 必须提供广泛的功能集,例如连接管理(以对等方式),编码/解码功能协商,选择和控制,媒体控制,防火墙和 NAT 元素遍历等。
网络地址转换(NAT)
网络地址转换器(NAT) (RFC1631)已经标准化,以缓解 IPv4 地址的稀缺和耗尽。
私有本地网络边缘的 NAT 设备负责维护私有本地 IP 和端口元组到一个或多个全局惟一的公共 IP 和端口元组的表映射。这使得 NAT 背后的本地 IP 地址可以在许多不同的网络中重用,从而解决了 IPv4 地址耗尽的问题。
图1-3 浏览器中的实时通信
WebRTC API 的设计确实代表了一个具有挑战性的问题。 它设想通过网络连续不断地实时传输数据流,以允许两个浏览器之间进行直接通信,而沿路径没有其他中介。 这显然代表了基于 Web 的通信的革命性方法。
让我们想象一下两个浏览器之间的实时音频和视频通话。 在这种情况下,通信可能涉及两个浏览器之间的直接媒体流,并通过涉及以下实体的复杂交互序列来协商和实例化媒体路径:
- 调用者浏览器和调用者 JavaScript 应用程序(例如,通过提到的 JavaScript API)
- 调用者 JavaScript 应用程序和应用程序提供者(通常是 web 服务器)
- 应用程序提供者和被调用的 JavaScript 应用程序
- 被调用方 JavaScript 应用程序和被调用方浏览器(同样通过应用程序浏览器 JavaScript API)
当前内容版权归 Salvatore Loreto & Simon Pietro Romano 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Salvatore Loreto & Simon Pietro Romano .