没有插件的本地 RTC 的开放标准

Open standard for native RTC with no plugins

最近我一直在使用 WebRTC,我想知道在本机级别实施实时通信开放标准是否更有意义。

假设我们有一个本机 API 而不是网络浏览器 API,任何本机应用程序(包括浏览器)都可以利用。

WebRTC 的部分承诺是在没有插件的情况下在浏览器上使用 RTC,但为什么要停在那里,为什么不在没有插件的情况下在任何具有媒体功能的设备上使用 RTC。许多具有媒体功能的设备不会运行网络浏览器,例如可穿戴设备。在我看来,浏览器本身已经成为插件,我认为就 RTC 而言,我们需要摆脱它。

听起来 OpenWebRTC 正朝着类似的方向发展,但到目前为止它们只能在浏览器中运行。

目前没有朝这个方向努力。 webrtc 标准化委员会的人忙着标准化 javascript API。如您所知,当前规范不是最终规范,目前仍在制定中。现在 ORTC 将产生更多的工作。

目前没有人尝试标准化任何形式的本地 RTC 的原因有很多。以下是我想到的一些内容:

  • 到底什么是原生? Java脚本是浏览器的本机脚本。 chrome 版本的 webrtc 使用 C++,但 OpnWebRTC 使用 C。 Android 开发人员主要使用 Java,iOS 开发人员使用 ObjectiveC。所有这些语言都应该有标准吗?这将需要很长时间。

  • 正如我所说,标准化委员会已经忙得不可开交。

  • 关于 WebRTC 的实验还有很多。标准化可能会阻止这种情况。

  • 原生库的API往往和JS很相似API.

  1. webrtc 定义。 webrtc 分为两部分,互补但分开。 W3C 联盟正在为名为 webRTC 的浏览器标准化 JS API。 IETF 正在标准化底层协议以及在线路上发生的互操作性,它被命名为 rtcweb。

  2. IETF 的 rtcweb 组定义了与浏览器进行互操作所需的一切,而无需自己成为浏览器,即网关、设备......夏威夷去年 11 月,例如有一个对应的 draft.

  3. 在客户端,webRTC JS API 的实现是在 c/C++ 实现之上完成的。那些“本地”(如在非浏览器中,C/C++)APIs 可以直接用于服务器、可嵌入设备、网关等,或者也可以用不同的语言包装(obj- c, java) 提供“原生”(如移动原生)APIs.

  4. 请注意,openWebrtc.io 和 webrtc.org 在 C/C++ 中都有完整的 webRTC 实现,您可以使用。 openWebrtc 提供 iOS 包装器和 webkit 包装器(用于 safari),但不提供数据通道支持、ORTC API 支持,也不在 windows 下编译。 webrtc.org 支持所有桌面操作系统,并为 iOS 和 Android 提供包装器。构建工具特定于 google 的 chrome,与使用标准自动工具的 openWebRTC 不同,github,...

HTH