WebRTC和Websockets。 有没有区别

我假设WebRTC是一个解码/编码audio和video的API,虽然服务器和客户端之间的通信是通过networking套接字或其他networking协议完成的? 我有点困惑。 WebRTC是否有自己的通信协议?

WebRTC有两个方面。

  1. JavaScript API( getUserMedia ),允许应用程序访问摄像头和麦克风硬件。 你可以使用这个访问来简单地在本地显示stream(也许应用效果 ),或者通过networking发送stream。 你可以发送数据到你的服务器,或者你可以使用…
  2. PeerConnection ,一种允许浏览器build立直接点对点套接字连接的API。 您可以直接build立连接到其他人的浏览器并直接交换数据。 这对于像video这样的高带宽数据非常有用,因为您不希望服务器必须处理大量数据的中继。

看看演示 ,看看WebRTC的两个部分在行动。

所以简而言之:

  • WebSocket允许浏览器和Web服务器之间的全双工通信。
  • WebRTC的PeerConnection允许两个浏览器之间的全双工通信。

WebRTC使用RTP(基于UDP的协议)进行媒体传输,但需要使用带外信令通道来build立通信。 信号通道的一个select是WebSocket。

而不是peerConnection你也可以看看WebRTC数据通道草案: http : peerConnection这基本上是双向udp。 这对于WebSockets来说可能是一个非常有价值的select,因为它没有tcp连接的“负面”方面。

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

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

这意味着您可以自由select交换networking信息的方式。 即你可以使用websockets,HTTP甚至电子邮件,但是这将是一个斗争:)