PortInterface代表本地通信端口,,有UDP ,TCP端口,如UDPPort,StunPort,TCPPort,TurnPort都必须拥有网络SOCKET(AsyncPacketSocket),负责与PEER及STUN和TURN通信,
与STUN和 TURN完成候选地址的搜集,与PEER完成连接建立(Connection)及建立后的通信.
-
创建PortInterface(具体类UDPPort,StunPort,TCPPort, TurnPort)
-
搜集候选地址(通过Port::AddAddress返回本地通信端口和搜集候选地址, PortAllocatorSession::SignalCandidateReady返回搜集地址,PortAllocatorSession::SignalPortReady返回本地端口)
-
根据候选地址与本地所有通信端口(UDPPort,StunPort,TCPPort, TurnPort)创建对应的Connection对象(类似一个pair).(本地端口通过回调返回P2PTransportChannel::OnPortReady)
-
建立与对方连接(通过MSG_CHECK_AND_PING定时发送STUN_BINDING_REQUEST请求,Connection::OnConnectionRequestResponse返回则连接成功)
-
未完继续 (后续深入ICE原理在WEBRTC中的实现)