WebRtc实际应用
1、什么是WebRtc
1.1 概述
随着网络技术的快速发展,实时通讯变得越来越重要。WebRtc(web Real-Time Communication)技术应运而生。WebRtc是一个支持在浏览器进行实时语音,视频通信和数据传输的开放项目,它可以在不需要安装任何插件或者第三方软件的情况下,实现点对点(peer-to-peer)的通信
1.2 应用场景
- 点对点视频聊天:如 微信视频 等实时视频通话应用。
- 多人视频会议:企业级多人视频会议系统,如飞书、钉钉、腾讯会议等。
- 在线教育:如腾讯课堂、网易云课堂等。
- 直播:游戏直播、课程直播等。
1.3 WebRtc有什么特点
- 实时性
- 高品质
- 安全性
2、WebRtc实现流程
2.1 如何实现两个设备的实时通信?
2.1.1 如何发现对方?
- 在p2p技术中通过交换元数据的方式,互相发现对方(终端),交换元数据比如媒体信息,网络数据等等信息,我们通常称这一个过程叫做【信令】
- 进行操作"信令"过程的服务器叫做【信令服务器】
- 【信令服务器】,主要进行2个工作,①:进行终端的媒体信息,网络信息的交换,②:进行终端的管理(上线,下线,异常等等)
2.1.2 不同的音视频编解码能力如何沟通?
不同终端统一“沟通协议“,这样不同的终端就可以了解对方支持的媒体格式!在WebRtc中,这个“沟通协议“叫做Session Description Protocol(SDP),用于描述浏览器的支持的媒体格式信息。
参与音视频通讯的双方想要了解对方支持的媒体格式,则必须交换SDP信息,交换SDP的过程,称为【媒体协商】
2.1.3如何联系上对方?
- 双方互相了解彼此的网络情况,以及媒体格式,完成【媒体协商】
- 建立网络连接渠道,webRtc中使用ICE协议通过一系列技术来完成通讯双方发现和协商可用的公网地址,实现NAT穿越。webRtc中网络信息通常用candidate表示,ICE的工作原理如下:
step1:通讯双方收集本地网络地址,以及通过STUN和TURN服务器获取的候选地址
step2:终端双方通过信令服务器交换这些地址
step3:通讯双方使用这些候选地址进行连接测试,确定最合适的地址
step4:使用当前地址进行通信
总结:通WebRtc提供的API获取各端的媒体信息SDP和网络信息candidate,并通过信令服务器进行交换,从而建立连接通道完成,音视频通话。