WEBRTC核心技术穿透



PortInterface代表本地通信端口,,UDP ,TCP端口,如UDPPort,StunPort,TCPPortTurnPort都必须拥有网络SOCKET(AsyncPacketSocket),负责与PEERSTUNTURN通信,

STUN TURN完成候选地址的搜集,PEER完成连接建立(Connection)及建立后的通信.

  1. 创建PortInterface(具体类UDPPort,StunPort,TCPPort, TurnPort)

  2. 搜集候选地址(通过Port::AddAddress返回本地通信端口和搜集候选地址, PortAllocatorSession::SignalCandidateReady返回搜集地址,PortAllocatorSession::SignalPortReady返回本地端口)

  3. 根据候选地址与本地所有通信端口(UDPPort,StunPort,TCPPort, TurnPort)创建对应的Connection对象(类似一个pair).(本地端口通过回调返回P2PTransportChannel::OnPortReady)

  4. 建立与对方连接(通过MSG_CHECK_AND_PING定时发送STUN_BINDING_REQUEST请求,Connection::OnConnectionRequestResponse返回则连接成功)

     

  5. 未完继续 (后续深入ICE原理在WEBRTC中的实现)

 

猜你喜欢

转载自blog.csdn.net/doitsjz/article/details/73627867