WebRTC中的RTCPeerConnection建立連接的過程


轉載來自:https://www.cnblogs.com/dapplehou/p/14159878.html

 

 

 

 

  1. peerA (RTCPeerConnection對象) 調用createOffer方法准備創建SDP
  2. 在createOffer的回調方法里,同時做了這兩件事
    1. 調 用peerA的setLocalDescription(description)方法,這個方法會觸發peerA的icecandidate 監聽方法handleConnection. 在這個方法里,會將peerA的icecandidate發送給peerB. 然后PeerB執行addIceCandidate(candidate),將peerA的candidate登記在案.
    2. 將peerA的description (就是SDP)發送給peerB
  3.   peerB收到peerA發來的SDP,執行createAnswer,在這個回調方法里,同時做兩件事
    1.   調用peerB的setLocalDescription(description)方法,這個方法會觸發peerB的icecandidate監聽方法handleConnection,在這個方法里,會將peerB的icecandidate發送給peerA. peerA收到后執行addIceCandidate(candidate),將peerB的candidate也登記
    2. 將peerB的SDP發送給peerA.
  4.   peerA和peerB開始傳遞音視頻流

  總結:就是peerA和peerB互相交換iceCandidate和SDP的過程。

 

 

原文鏈接:https://blog.csdn.net/starcrm/article/details/52576388

本地和遠端通訊的過程有些像電話,比如張三正在試着打電話給李四,詳細機制:

張三創造了一個RTCPeerConnection 對象。
張三通過RTCPeerConnection createOffer()方法創造了一個offer(SDP會話描述) 。
張三通過他創建的offer調用setLocalDescription(),保存本地會話描述。
張三發送信令給李四。  只要本地代理ICE需要通過信令服務器傳遞信息給其他對等端時就會觸發
李四接通帶有李四offer的電話,調用setRemoteDescription() ,李四的RTCPeerConnection知道張三的設置(張三的本地描述到了李四這里,就成了李四的遠程會話描述)。
李四調用createAnswer(),將李四的本地會話描述(local session description)成功回調
李四調用setLocalDescription()設置他自己的本地局部描述。
李四發送應答信令answer給張三。
張三將李四的應答answer用setRemoteDescription()保存為遠程會話描述(李四的remote session description)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM