Webrtc 信令交换过程

本文详细阐述了WebRTC中两个终端A与B如何通过信令交换建立连接。A首先创建offer信令并发送给B,B接收到后创建answer信令回传。在这一过程中,双方还会交换Candidate信息以完成P2P的NAT穿透。最终,A和B通过setRemoteDescription方法设置对方的SDP,完成连接建立。
摘要由CSDN通过智能技术生成

开发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对象

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

原文链接:Webrtc 信令交换过程 - 资料 - 我爱音视频网 - 构建全国最权威的音视频技术交流分享论坛

本文福利, C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg webRTC rtmp hls rtsp ffplay srs↓↓↓↓↓↓见下面↓↓文章底部↓↓ 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值