WebRTC Peerconnection通信过程中的四种角色:
- Signaling Server
- ICE/TURN/STUN Server
- Remote Peer
- Local Peer
通信过程中的基本概念:
- Room:Signaling Server使用Room的概念对同一组通信的peers进行配对管理,一个room中包含有1个或者多个
peers。当没有peers存在时room销毁;当第一个peer连接到signaling server时执行create room动作,此时因为没有其他peers,建立room的这个peer不与其他节点建立P2P通信;其他peers随后加入room,加入room后会主动与room已经存在的peer建立连接; - Offer:主动与其他peer建立P2P链接的peer把自己的SDP信息整理好,通过signaling server转发给room里面的其他peer,这个SDP信息包就是Offer;
- Answer:被动连接的Peer在收到signaling server转发的其他peer的offer信息以后,也把自己的SDP信息整理好,同样通过signaling server转发给主动连接它的peer,他自己的SDP信息包就是Answer;
- IceCandidate:Peer与ICE/TURN/STUN Server直接建立连接,获取自己的NAT类型以及外网IP和端口,这些ICE/TURN/STUN Server返回的消息就是IceCandidate或者直接简称Candidate;
PeerConnection连接建立流程图: