webRTC PeerConnection连接过程

PeerConnection

PeerConnection是webRTC的顶层接口,代表一个通话对象.
要建立点对点的音视频通话需要的双方各建立一个PeerConnection并交互信令完成对接.

signal信令

webRTC的信令指的是 SDP和Candidate
    1. SDP是session description,描述local的多媒体情况
    2. Candidate是候选,包含了p2p的信息
webRTC文档中描述的需要用户自定义实现的信令交互过程其实就是两个PeerConnection交换sdp和candidate的过程.

最简单的信令可以直接通过socket来实现,webRTC的官方demo PeerConnection client就是将sdp和candidate json序列化后通过socket发生出去的.

连接过程

分为会话发起方和响应方
1. 发起方创建PeerConnection并调用create offer以及生成本地的local mediastream
   offer指的是local的sdp,调用后会生成本地sdp(回调函数onSuccess会被调用)
    发起方set local sdp
2. 通过信令把发起方的sdp转发给响应方
3. 响应方收到sdp信令 创建PeerConnection并set remote sdp并create answer
   生成本地的local mediastream 生成本地的sdp后设置local sdp 
4. 通过信令转发响应方的sdp给发起方
5. 两方都会生成candidate 通过信令转发给对方.收到对端的candidate后add ice candidate
6. 到这一步一般没有错误的话也就连接成功 随后PeerConnection会触发各自的回调函数
   onAddStream也就是添加对端的mediastream
7. 关于视频的渲染播放 添加mediastream就可以做到了 各个系统下的方式不同 可以参照官方demo的做法.

连接示意图

webRTC的官网有两张连接示意图理的非常清晰
改天贴上来.

你可能感兴趣的:(WebRTC)