WebRTC和Websockets。 有没有区别
我假设WebRTC是一个解码/编码audio和video的API,虽然服务器和客户端之间的通信是通过networking套接字或其他networking协议完成的? 我有点困惑。 WebRTC是否有自己的通信协议?
WebRTC有两个方面。
- JavaScript API(
getUserMedia
),允许应用程序访问摄像头和麦克风硬件。 你可以使用这个访问来简单地在本地显示stream(也许应用效果 ),或者通过networking发送stream。 你可以发送数据到你的服务器,或者你可以使用… -
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甚至电子邮件,但是这将是一个斗争:)
- 如何在上传之前用javascript检查文件的MIME类型?
- Twitter Bootstrap中的响应式表格处理
- CSS进度圈
- AngularJS ng-repeat没有html元素
- iPhone上的本地存储限制?
- 为什么版本2.2及以上的浏览器支持HTML5 Web Workers?
- 基于闪存的ZeroClipboard的HTML5替代品,用于将数据安全地复制到剪贴板?
- 将样式应用于父项,如果它具有CSS的子项
- Uncaught TypeError:无法执行'节点'上的'appendChild':参数1的types不是'Node'.draganddrop.html:20 dropdraganddrop.html:26