Webrtc 信令交换过程

开发Webrtc程序,首先需要知道其连接的建立过程,现记录如下:

假设有两个终端 A 与 终端 B,并假设 A先发起连接,A准备与B通信。

1、A调用peerConnection.createOffer()方法创建一个offer信令,内含SDP;

2、offer信令创建成功后会调用SdpObserver监听中的onCreateSuccess()响应函数

在此处A通过peerConnection.setLocalDescription()方法将SDP赋予自己的PeerConnection对象,同时将offer信令发送给服务器,请求服务器将其转发给B,
服务器将offer信令转发给B端

3、B收到offer信令后,调用peerConnection.setRemoteDescription()方法将A发过来的SDP赋予自己的PeerConnection对象,并调用peerConnection.createAnswer()方法创建一个answer信令,内含SDP
answer信令创建成功后同样会调用SdpObserver监听中的onCreateSuccess()响应函数

在此处B同样通过peerConnection.setLocalDescription方法将SDP赋予自己的PeerConnection对象,同时将answer信令发送给服务器并由服务器转发给A
服务器将answer信令转发给A端


4、A收到B的answer信令后,利用peerConnection.setRemoteDescription()方法将B发过来的SDP赋予自己的PeerConnection对象

以上4个步骤是交换 SDP信令的过程,同时进行的还有交换 Candidate 信令,步骤如下:

5、获取Candidate信息(A与B端同时进行,获取的是P2P的NAT地址信息)

A端与B端的PeerConnection.Observer监听会调用onIceCandidate()响应函数并提供IceCandidate对象。然后将IceCandidate对象组成candidate信令发送给服务器转发给另一端

服务器将candidate信令转发给连接上服务器的其他端

6、各端收到对方的candidate信令后调用peerConnection.addIceCandidate()将IceCandidate赋予自己的PeerConnection对象

 以上过程跑完以后连接就基本建立了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值