通信协议
- UDP:消息发送
- TCP:文件传输和接收
- SCTP:webrtc通信协议
局域网文件共享
- 断点续传库 pub.dev/packages/di…
关于STUN\TURN服务器
- STUN服务器是用来获取外部地址的
stun:stun.l.google.com:19302
- TURN服务器是用来在直接连接(点到点)失败的情况下进行中继数据流量的
turn:123.45.67.89:3478
WebRTC 常见的几种模
1) Mesh 网状结构
通过搭建 Turn/Stun 服务直接发起端到端的 P2P 通话。
优点:不需要搭建 MediaServer 。
缺点:对于多人通话需要每个客户端都跟其他两个端分别建立 P2P 连接,每新增一个客户端,所有的客户端都需要新增一路数据上行,导致客户端上行带宽占用太大。因此,通话人数越多,效果越差,也无法在服务端对视频进行额外处理,如:录制存储回放、实时转码、智能分析、多路合流、转推直播等。
2)MCU
服务端负责把参与者的视频做混流,多人参会每个人只有一个上行视频,同时接收一个下行视频流。
优点:客户端压力较小,带宽消耗小,服务端可以控制下发的视频数据,从而可以发起更多参与者的视频会议。
缺点:服务器资源消耗较大,对服务器的性能要求高,服务器成本高昂。
3)SFU
SFU 的全称是:Selective Forwarding Unit,是一种通过服务器来路由和转发 WebRTC 客户端音视频数据流的方法。 SFU 服务器最核心的特点是把自己“伪装”成一个 WebRTC 的客户端,将一个 Client 端的数据转发到其他多个 Client 端。
优点:对服务器性能要求不高。
缺点:对服务器和客户端带宽要求高。