webrtc 会话流程
WebRTC 会话流程
概述
WebRTC 是一种用于实时通信的开放标准,可以实现浏览器之间的音视频通话、文件共享等功能。
WebRTC 会话流程是指建立和维护 WebRTC 实时通信的过程,包括信令传输、媒体协商、建立连接等步骤。
信令传输
1.建立信令通道(Signaling Channel)
通信双方需要通过信令服务器建立信令通道,用于发送和接收控制消息。
可以使用 WebSocket、HTTP 或其他协议来实现信令通道。
2.发起呼叫
主叫方发送一个”offer”信令给被叫方,包含了自己的媒体协商信息和网络信息。
信令通过信令通道传输给被叫方。
3.响应呼叫
被叫方收到”offer”信令后,生成自己的媒体协商信息和网络信息,并将其打包成一个”answer”信令。
被叫方通过信令通道将”answer”信令发送给主叫方。
4.建立连接
主叫方收到”answer”信令后,根据其中的媒体协商信息和网络信息,建立本地媒体流和连接。
连接建立后,主叫方和被叫方可以通过连接互相传输媒体数据。
媒体协商
5.获取媒体流
主叫方和被叫方通过获取用户设备的音视频流(如摄像头和麦克风)。
6.创建 PeerConnection
主叫方和被叫方分别创建一个 PeerConnection 对象,用于媒体流的传输和处理。
7.添加媒体流
主叫方将自己的媒体流通过 PeerConnection 对象添加到本地连接中。
被叫方接收到主叫方的媒体流后,将其添加到自己的 PeerConnection 对象中。
8.媒体协商
主叫方通过 PeerConnection 对象生成一个包含本地媒体协商信息的”offer”信令。
主叫方通过信令通道将”offer”信令发送给被叫方。
被叫方收到”offer”信令后,生成一个包含自己媒体协商信息的”answer”信令。
被叫方通过信令通道将”answer”信令发送给主叫方。
建立连接
9.建立ICE通道
主叫方和被叫方通过ICE协议进行网络地址的收集和候选点的传递。
通过ICE协议,双方选择合适的通信路径,建立直连或通过TURN服务器进行中转。
10.建立数据通道
主叫方和被叫方使用ICE通道建立一个或多个数据通道,以传输更多自定义数据。
11.传输媒体数据
主叫方通过PeerConnection发送自己的媒体数据。
被叫方接收到主叫方的媒体数据,并进行解码和渲染。
12.实时通信
主叫方和被叫方可以通过PeerConnection的数据通道进行实时通信,如文本消息、文件共享等。
结束通话
13.关闭媒体流
主叫方和被叫方停止向PeerConnection发送媒体数据。
webrtc浏览器
14.关闭PeerConnection
主叫方和被叫方关闭PeerConnection对象,释放资源。
15.清理信令
主叫方和被叫方关闭信令通道,结束信令传输。
总结
WebRTC 会话流程是一个复杂的过程,包括了信令传输、媒体协商和建立连接等多个步骤。通过遵守这一流程,浏览器可以实现实时通信功能,满足用户对音视频通话和文件共享等需求。
4.媒体协商(续)
主叫方收到”answer”信令后,通过 PeerConnection 对象处理该信令,将被叫方的媒体协商信息应用于连接。
被叫方收到”answer”信令后,同样通过 PeerConnection 对象处理该信令,将主叫方的媒体协商信息应用于连接。
5.ICE 候选点收集
PeerConnection 使用 ICE (Interactive Connectivity Establishment) 协议进行网络地址的收集。
对于每个候选点,PeerConnection 会收集本地 IP 地址、端口号、传输协议等信息,并将其封装成 ICE 候选点。
候选点包括 STUN(用于直连)和 TURN(用于中转)服务器的信息。
6.候选点传输
主叫方和被叫方通过信令通道交换自己收集到的候选点信息。
候选点信息会被封装成 ICE 候选点信令,通过信令通道传输。
建立连接
16.选取最佳候选点
主叫方和被叫方在收到对方候选点信息后,根据网络条件选择最佳的候选点。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。