Android IOS WebRTC 音视频开发总结(二七)-- whatsapp之转发优先
2015-05-14 22:17
676 查看
最近看了一篇老外在webrtcHacks上写的文章,主要介绍webrtc和whatsapp的传输机制,蛮好的,加上自己的理解进行总结,
希望对大伙有所帮助,转载请说明出处,原文来自博客园RTC.Blacker。
whatsapp的voip的传输机制用的是pjsip(webrtc的P2P机制冗余庞大一直被人诟病,所以有人就替换成了同样庞大的pjsip),下面是他们的对比:
![](http://images0.cnblogs.com/blog2015/77236/201505/142137123924581.png)
从上图可知,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."
抓包结果详见下图:
![](http://images0.cnblogs.com/blog2015/77236/201505/142205076736406.png)
当然,webrtc也可以用变通的方式实现这种效果,详见:https://github.com/fippo/webrtc/commit/bc8a3ac137bf49795f2ed1487cdfdfab6451540b
另外如果对作者分析的Whatsapp的整个抓包过程感兴趣,详见:
https://webrtchacks.com/wp-content/uploads/2015/04/WhatsappReport.pdf
下面是我自己整理的ICE打洞过程截图:
![](http://images0.cnblogs.com/blog2015/77236/201506/051400021446979.png)
![](http://images0.cnblogs.com/blog2015/77236/201506/051400201441079.png)
最后,原文来自:https://webrtchacks.com/whats-up-with-whatsapp-and-webrtc/
希望对大伙有所帮助,转载请说明出处,原文来自博客园RTC.Blacker。
whatsapp的voip的传输机制用的是pjsip(webrtc的P2P机制冗余庞大一直被人诟病,所以有人就替换成了同样庞大的pjsip),下面是他们的对比:
![](http://images0.cnblogs.com/blog2015/77236/201505/142137123924581.png)
从上图可知,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."
抓包结果详见下图:
![](http://images0.cnblogs.com/blog2015/77236/201505/142205076736406.png)
当然,webrtc也可以用变通的方式实现这种效果,详见:https://github.com/fippo/webrtc/commit/bc8a3ac137bf49795f2ed1487cdfdfab6451540b
另外如果对作者分析的Whatsapp的整个抓包过程感兴趣,详见:
https://webrtchacks.com/wp-content/uploads/2015/04/WhatsappReport.pdf
下面是我自己整理的ICE打洞过程截图:
![](http://images0.cnblogs.com/blog2015/77236/201506/051400021446979.png)
![](http://images0.cnblogs.com/blog2015/77236/201506/051400201441079.png)
最后,原文来自:https://webrtchacks.com/whats-up-with-whatsapp-and-webrtc/
相关文章推荐
- Android IOS WebRTC 音视频开发总结(六)-- iOS开发之含泪经验
- Android IOS WebRTC 音视频开发总结(七)-- 基于浏览器的开发
- Android IOS WebRTC 音视频开发总结(六)
- Android IOS WebRTC 音视频开发总结(七)
- Android IOS WebRTC 音视频开发总结(八)-- ios上移植webRTCDemo
- Android IOS WebRTC 音视频开发总结(九)-- webrtc入门001
- Android IOS WebRTC 音视频开发总结(十)-- webrtc入门002
- Android IOS WebRTC 音视频开发总结(十一)-- stun&turn部署
- Android IOS WebRTC 音视频开发总结(十二)-- sufaceview
- Android IOS WebRTC 音视频开发总结(十四)-- sip和xmpp异同
- Android IOS WebRTC 音视频开发总结(十五)-- 培训课程大纲
- Android IOS WebRTC 音视频开发总结(十六)-- 音频设备操作之opensl与jni
- Android IOS WebRTC 音视频开发总结(六)
- Android IOS WebRTC 音视频开发总结(十七)-- 调试技巧
- Android IOS WebRTC 音视频开发总结(十八)-- 手机适配
- Android IOS WebRTC 音视频开发总结(十九)-- kurento
- Android IOS WebRTC 音视频开发总结(二十)-- 自由职业
- Android IOS WebRTC 音视频开发总结(二一)-- 黑屏问题
- Android IOS WebRTC 音视频开发总结(六)- iOS注意事项