第8篇 WebRTC一对一IOS端研究(一)

关键词:WebRTC三个主要接口,MediaStream,RTCDataChannel

一、WebRTC一对一

1.1 WebRTC三个主要接口

1MediaStream:通过MediaStream的API能够通过设备的摄像头及话筒获得视频、音频的同步流

2RTCPeerConnection:RTCPeerConnection是WebRTC用于构建点对点之间稳定、高效的流传输的组件

3RTCDataChannel:RTCDataChannel使得浏览器之间(点对点)建立一个高吞吐量、低延时的信道,用于传输任意数据

1.2 分别对上述三个接口进行简单介绍

1MediaStreamgetUserMedia

MediaStream API为WebRTC提供了从设备的摄像头、话筒获取视频、音频流数据的功能。

2)RTCPeerConnection

WebRTC使用RTCPeerConnection来在浏览器之间传递流数据,这个流数据通道是点对点的,不需要经过服务器进行中转。但是这并不意味着我们能抛弃服务器,我们仍然需要它来为我们传递信令(signaling)来建立这个信道。WebRTC没有定义用于建立信道的信令的协议:信令并不是RTCPeerConnection API的一部分。

这些session信息的交换应该在点对点的流传输之前就全部完成,一个大致的架构图如下:


注:通过服务器建立信道

这里再次重申,就算WebRTC提供浏览器之间的点对点信道进行数据传输,但是建立这个信道,必须有服务器的参与。WebRTC需要服务器对其进行四方面的功能支持:

a)用户发现以及通信

b)信令传输

c)NAT/防火墙穿越

d)如果点对点通信建立失败,可以作为中转服务器

注:在RTCPeeConnection中,使用ICE框架来保证RTCPeerConnection能实现NAT穿越

 

两个兼容:

//兼容浏览器的getUserMedia写法
var getUserMedia = (navigator.getUserMedia ||
                   navigator.webkitGetUserMedia ||
                   navigator.mozGetUserMedia ||
                   navigator.msGetUserMedia);
//兼容浏览器的PeerConnection写法
var PeerConnection = (window.PeerConnection ||
                   
window.webkitPeerConnection00||
                   
window.webkitRTCPeerConnection||
                   
window.mozRTCPeerConnection);

3RTCDataChannel

既然能建立点对点的信道来传递实时的视频、音频数据流,为什么不能用这个信道传一点其他数据呢?RTCDataChannel API就是用来干这个的,基于它我们可以在浏览器之间传输任意数据。DataChannel是建立在PeerConnection上的,不能单独使用。

2016年11月21日星期一


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值