Android IOS WebRTC 音视频开发总结(六九)-- qq视频通话都是p2p,我们还怕啥?

本文主要介绍在线教育这个行业,文章最早发表在我们的微信公众号上,支持原创,详见这里

欢迎关注微信公众号blackerteam,更多详见www.rtc.help

Android IOS WebRTC 音视频开发总结(六九)-- qq视频通话都是p2p,我们还怕啥?

先简单介绍什么是p2p?

p是peer的缩写,p2p就是点对点,两个客户端直接进行数据交互,不需要经过服务器转发(relay),这种方式能大大减轻服务端的负载,所以特别视适合大数据的传输,比如视频流,大文件。

之前很多朋友在问p2p成功率大概是多少?

其实这个问题不太好回答但又好回答:不太好回答是因为不同区域网络状况不一样所以很难有统一的答案;好回答是因为如果遵循ICE协议,基本上能打洞成功的网络他都能p2p,不能打洞成功的网络基本上都是跟路由器类型有关,与技术无关。

根据google官方文档,92%的情况下都可以p2p,看到这里很多朋友很高兴,心理有底了,在国内70~80%的成功率是可以期待的,以前做的文件传输也可以用p2p了,其实微软的win10升级也是这么搞的,p2p优先,节省宝贵的服务端资源嘛。

知道了p2p成功率,我们再来看1对1的视频通话,如果支持p2p那理论上一台普通的阿里云服务器其实就可以支持比较高的并发了,因为大部分的视频流都不需要经过服务器relay,但这时候有人可能会问:“和relay相比,p2p效果怎样?”

这个问题其实也不好回答,因为某些极端情况下p2p有可能不如服务器relay,但我们可以参考qq和whatsapp的做法。

根据我们之前的测试,qq现在1对1视频通话打洞逻辑和成功率基本上跟webrtc一样(当时模拟了各种网络状况,联通、电信、移动、全锥、对称等等),p2p优先,失败时才启用relay。whatsapp其实也差不多,只不过为了加快连接的建立,他采用relay优先,p2p建立后就会切换过来,对这部分感兴趣的朋友可以去查看我们博客上的相关文章。

所以了解了p2p,qq,whatsapp的这些逻辑之后,你下次跟朋友视频就不用担心qq后台录音录像的问题了,这些东西太占资源了,最起码他们现阶段不会去做,如果要这么做他们就不会使用p2p了。

看到这里一些朋友就会问,既然大部分视频通话可以p2p解决,那采用第三方厂商方案的时候直接按用户数计费是不是不合理?因为p2p下根本不需要占用服务端太多资源。

是的,没错,所以很多厂商的服务支持私有云部署,也就是我们自己提供服务器,他们负责部署,这样我们既不用担心数据安全性,又可以节省成本,还可以满足自身其他业务需求!

当然说到私有云部署就必然要涉及到分布式部署甚至是全球部署,至于是否需要分布式部署,怎么分布式部署我们下回分享。

喜欢相关文章请转发此文,或扫描下方二维码关注我们的微信公众号:blackerteam

Android IOS WebRTC 音视频开发总结(六九)-- qq视频通话都是p2p,我们还怕啥?

上一篇:使用 Java 流进行分组和聚合


下一篇:送给使用phpstorm+thinkphp开发者的福利