webrtc 网络块port创建流程

模块说明:

webrtc 网络块port创建流程_第1张图片
此模块在BasicPortAllocatorSession模块中用以获取本机地址用于后续生成Port用
webrtc 网络块port创建流程_第2张图片
此模块主要是用于生成Port端口并开启Candidate收集.Stun连接服务器并收集外网地址是在AddAllocatedPort函数中通过StunPort对象调用PrepareAddress函数开始处理的.
至于Port的创建本模块时通过调用AllocationSequence对象逐步创建完成UDP/STUN/TURN/TCP的Port并添加端口至本Session模块
webrtc 网络块port创建流程_第3张图片

主要流程

webrtc 网络块port创建流程_第4张图片
PeerConnection的SetLocalDescription调用后先创建完音视频数据Channel后创建本Channel的TransportChannel,创建的同时开启Connect的ping检查.此时TransportChannel无Connect,因此无ping操作
创建完Channel后会调用WebRtcSession的MaybeStartGathering操作,这个操作经过一系列中间调用后会调用到TransportChannel的MaybeStartGathering操作,这个操作中会创建PortAllocatorSession并调用StartGettingPorts开始收集Ports.

PeerConnection的SetRemoteDescription调用完成后会调用检查Channels创建成功没,并操作创建TransportChannel

PeerConnection的AddIceCandidate调用后会逐步调用到TransportChannel的AddRemoteCandidate函数,设置远端候选者信息并创建Connection.
创建完成Connection后通过已经开启的Ping线程来检查连通性并测试Stun打洞是否成功.

vsdx格式流程图文件下载地址:
http://download.csdn.net/detail/ab7936573/9865972

你可能感兴趣的:(c++,webrtc)