WebRTC简介46
发表时间:2022-12-05 09:31 WebRTC的由来 WebRTC(Web Real-Time Communication)(网页实时通信)是一个谷歌开源项目,它提供了一套标准API,使Web应用可以直接提供实时音视频通信功能,不再需要借助任何插件。WebRTC 是 RTC 的一部分,是一项实时通信技术,它容许网络应用或者站点,在不借助两头媒介的状况下,建设浏览器之间点对点(Peer-to-Peer)的关联,实现视频流/音频流或者应用数据的传输。 为什么使用WebRTC WebRTC的优点
使用场景
WebRTC架构WebRTC的作用 音视频会议、在线教育、即时通信工具、游戏、人脸识别 如何实现 WebRTC一对一通话原理 WebRTC由四部分组成,分别为两个WebRTC终端、一个信令服务器、一台中继服务器(STUN/TURN)和两个NAT,这是最经典的一对一通信架构。 通话过程需要三个主要步骤分别是:媒体协商、网络协商、建立连接。 媒体协商 首先两个客户端想要创建连接,一般来说需要有一个双方都能访问的服务器来帮助它们交换连接所需要的信息。这个服务器叫做信令服务器。 与服务器建立连接后,通信的双方就可以通过信令服务器彼此交换必要的信息了,比如告诉对方自己的外网IP地址和端口是多少等。 双方交换的媒体数据由SDP(Session Description Protocol,会话描述协议)描述 网络协商 在交换信息之前WebRTC终端还要与STUN/TURN服务器建立连接。这样做的目的是通过STUN/TURN服务器获得各自的外网IP地址和端口。 WebRTC终端拿到自己的外网IP地址和端口后,再通过信令服务器交换给对方。当彼此获得对方地址后,它们就可以尝试NAT穿越,进行P2P连接了。这个过程涉及NAT及ICE协议。 STUN STUN是指简单UDP穿透NAT,这项技术允许位于NAT后的客户端找出自己的公网IP地址,以及查出自己位于哪种类型的NAT及NAT所绑定的Internet端口。 TURN TURN是指使用中继穿透NAT,是STUN的一个扩展,主要添加了中继功能。 如果终端在进行NAT之后,在特定的情景下有可能使得终端无法和其他终端进行直接的通信,这时就需要将公网的服务器作为一个中继,对来往的数据进行转发。这个转发采用的协议就是TURN。 建立连接 连接双方(Peer)通过第三方服务器即信令服务器来交换各自的SDP数据。 连接双方通过STUN协议从STUN服务器那里获取到自己的NAT结构、子网IP和公网IP、端口,即Candidate信息。 连接双方通过第三方服务器来交换各自的Candidate,如果连接双方在同一个NAT下,那它们仅通过内网Candidate就能建立起连接;如果它们处于不同NAT下,就需要通过STUN服务器识别出的公网Candidate进行通信。 如果仅通过STUN服务器发现的公网Candidate仍然无法建立连接,这就需要寻求TURN服务器提供的转发服务,然后将转发形式的Candidate共享。 下一篇蓝松SDK技术文档
|