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)

posted @ 2021-10-19 15:04  冰糖葫芦很乖  阅读(707)  评论(0编辑  收藏  举报