微信的视频对讲主要是通过webrtc中点对点的形式实现的(也就是p2p),主要的原理如下图:
实现是站在巨人的肩膀上实现的:https://github.com/Xianlau/WebRTC_Demo
运行的效果如下:
完整的实现框架包括server端与client端。
- server端主要包括signalserver与turn(stun)服务器
- client端包括android、ios、web
git库中已经包含了signalserver,我们只需要运行就行了,demo中stun服务器用的是google的公用服务器stun:stun.l.google.com:19302、stun:stun1.l.google.com:19302、stun:stun2.l.google.com:19302、stun:stun3.l.google.com:19302、stun:stun4.l.google.com:19302,这个服务器上用的人多,反应有点慢而且不受控制,如果要受控我们可以搭建自已的turn或stun服务器