webrtc端对端连接
核心类 RTCPeerConnection 主要方法分以下4类
1,媒体协商 //用的视音频格式, 编解码格式
2,Stream/Track //将视音频添加到Track, 再将track添加到Stream进行传输
3,传输相关方法//用什么协议传输,rtp/rtcp 链路好坏
4,统计相关方法 //编解码器, 音频视频格式, 传输相关统计数据
深入理解媒体协商过程及原理
媒体协商方法包括下面四个
createOffer
createAnswer
setLocalDescription //收集能通信的所有候选者
setRemoteDescription
track方法
addtrack
deletetrack
重要事件
onnegotiationneeded //需要进行协商, 媒体协商时触发事件
onicecandiadate //收到ice候选者时触发
注: 端对端连接时, 信令服务器主要进行 sdp_offer 及 candiadate(候选者) 转发
webRtc传输基本知识:
NAT //有NAT网关, 将内网地址转成公网地址
STUN //第三方中介服务, 交换NAT的公网地址
TURN //p2p可能穿越不成功, 所以要云端架设服务器, 对媒体数据进行转发
ICE //将上面几种打包,做最优选择. 先偿试p2p, 如果p2p不通则选择TURN
NAT产生原因, 由于IPv4地址不够. 出于网络安全原因.
NAT种类
1,完全锥型NAT(Full Cone NAT)
//内网中的一台主机, 经过NAT端口映射,连接不同服务器, 只形成同样的外网的IP与端口.
2,地址限制锥型NAT(Address Restricted Cone NAT)
//记录发向所请求服务器IP地址, 非此服务器IP发来的消息都丢掉
3,端口限制锥型NAT(Address Restricted Cone NAT)
//记录发向所请求服务器IP地址及端口, 非此服务器IP及端口发来的消息都丢掉
4,对称型NAT(Symmetic NAT)
//内网主机连接不同的服务器, 经过NAT时会形成不同的IP与端口.
注:只有3-4, 4-4不能打通. 其它两两间可以打通.