52

我假设 WebRTC 是一个解码/编码音频和视频的 API,尽管服务器和客户端之间的通信是通过 Web 套接字或其他网络协议完成的?我有点困惑。WebRTC 有自己的通信协议吗?

4

4 回答 4

84

WebRTC 有两个方面。

  1. getUserMedia允许应用访问摄像头和麦克风硬件的JavaScript API ( )。您可以使用此访问权限在本地简单地显示流(可能应用效果),或通过网络发送流。您可以将数据发送到您的服务器,或者您可以使用...
  2. PeerConnection,一种允许浏览器建立直接对等套接字连接的 API。您可以直接与其他人的浏览器建立连接并直接交换数据。这对于像视频这样的高带宽数据非常有用,您不希望您的服务器必须处理大量数据的中继。

查看演示以了解 WebRTC 的两个部分的实际运行情况。

简而言之:

  • WebSockets 允许浏览器和 Web 服务器之间的全双工通信。
  • WebRTCPeerConnection允许两个浏览器之间的全双工通信。
于 2012-10-05T03:57:48.830 回答
14

WebRTC 使用 RTP(基于 UDP 的协议)进行媒体传输,但需要带外信令通道来设置通信。信号通道的一种选择是 WebSocket。

于 2012-10-05T08:01:21.810 回答
4

除了peerConnection你还可以查看 WebRTC 数据通道草案:https ://datatracker.ietf.org/doc/html/draft-jesup-rtcweb-data-protocol-00 ,它基本上是双向 udp。这可能是 WebSockets 的一个非常有价值的替代方案,因为它没有 tcp 连接的“负面”方面。

于 2012-10-05T14:45:16.320 回答
2

不,信令不是由 WebRTC 定义的。

这是 IETF 的一篇文章,很好地解释了为什么它不是: http ://www.ietf.org/mail-archive/web/rtcweb/current/msg01143.html

这意味着您可以自由选择交换网络信息的方式。即你可以使用 websockets、HTTP 甚至电子邮件,但这会有点困难 :)

于 2013-08-19T07:43:42.487 回答