您的位置:首页 > 移动开发

Android IOS WebRTC 音视频开发总结(二七)-- whatsapp之转发优先

2015-05-14 22:17 676 查看
最近看了一篇老外在webrtcHacks上写的文章,主要介绍webrtc和whatsapp的传输机制,蛮好的,加上自己的理解进行总结,

希望对大伙有所帮助,转载请说明出处,原文来自博客园RTC.Blacker。


whatsapp的voip的传输机制用的是pjsip(webrtc的P2P机制冗余庞大一直被人诟病,所以有人就替换成了同样庞大的pjsip),下面是他们的对比:



从上图可知,whatsapp并没有采用ICE,只用到了STUN,不过他在建立连接的时候做了一个很有意思的改动:

建立连接前先通过Turn建立连接,等到P2P打洞成功后再将连接从turn切换为P2P,这样做的好处就是减少等待时间,增强用户体验,而且为将来的多方通话做了一个很好的扩展,原文如下:

"The most impressive thing I found is the optimization for a fast call setup by using a relay initially and then switching to a peer-to-peer session. This also opens up the possibility for a future multi-party VoIP call which would certainly be supported by this architecture."

抓包结果详见下图:



当然,webrtc也可以用变通的方式实现这种效果,详见:https://github.com/fippo/webrtc/commit/bc8a3ac137bf49795f2ed1487cdfdfab6451540b

另外如果对作者分析的Whatsapp的整个抓包过程感兴趣,详见:
https://webrtchacks.com/wp-content/uploads/2015/04/WhatsappReport.pdf
下面是我自己整理的ICE打洞过程截图:





最后,原文来自:https://webrtchacks.com/whats-up-with-whatsapp-and-webrtc/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: