ICE FUll
第一步:
WebRTC客戶端先去連接ICE Server,也就是STUN Server(地址轉換)或者TURN Server(中轉)。
STUN Server返回客戶端三種地址,
第二步:
WebRTC客戶端創建RTCPeerConnection並且設置好ICEServer地址和本地Audio Track、Video Track后,自動向ICE服務器發出測試然后得到ICE candidate.
第三步:
客戶端把得到的candidate使用自己的信令服務器發送給另一個要通訊的客戶端,對方收到candidate后加入到RTCPeerConnection中。
第四步:
請求客戶端使用RTCPeerConnection發出offer請求,得到自己的sdp,然后通過信令服務器發給被請求客戶端
第五步:
被請求客戶端收到offer以后調用RTCPeerConnection.setRemoteDescription加入remote sdp,然后調用RTCPeerConnection.answerForConstraints和setLocalDescription得到自己的sdp並且后台跟ice服務器通訊異步獲得自己的candidate,再將自己的sdp和candidate分別通過信令發回給請求客戶端,請求客戶端收到sdp后也調用RTCPeerConnection.setRemoteDescription加入remote sdp,收到candidate也加入RTCPeerConnection。
第六步:
鏈路建立完成.
ICE LITE
是ice規范的一個最小版本,用於在公共IP地址上運行的服務器。
媒體體服務器僅響應傳入的STUN綁定請求,並在ice進程本身中充當受控實體。這種簡單性使得它在sfu和其他媒體服務器的實現中非常流行。