WebRTC通话原理STUN和TURN
STUN做了什么?
告诉我你的公网IP地址+端口是什么。但是STUN并不是每次都能成功的为需要的NAT通话设备分配IP地址的。P2P使用本地带宽。多人视频通话的过程中,通话质量的好坏旺旺需要根据使用者本地的带宽确定。
STUN干不了的,TURN干。
STUN分配公网失败后,可以通过TURN服务器请求公网IP地址作为中级地址。这种方式的带宽由服务器端承担。
WebRTC中经常用到2个协议,STUN和TURN服务器我们使用coturn开源项目来搭建。
ICE(interactive connectivity establishment,交互式连接建立)
ICE不是一个协议,而是一个框架,它整合了STUN和TURN。conturn开源项目集成了STUN和TURN功能呢。
WebRTC通话信令基本设计
Join: 加入房间
Resp-join:当join加入房间后返回另一个人的uid,如果没有则不返回。
Leave:离开房间,服务器收到leave责检查房间是否有其他人,如果有其他人则通知有人离开。
new-peer:服务器通知客户端有人加入,收到new-peer则发起连接请求。
Peer-leave:服务器通知客户端有人离开。
Offer:转发offer sdp。
Answer:转发answer sdp。
Candidate:转发candidate sdp。