伴随着2017年的钟声,它的到来给IM的世界带来了更多的期待。
—— 题记
Mars是什么?
Mars是微信自用的移动端IM网络层跨平台组件库(文末附源码地址)。是一个业务性无关、平台性无关、使用C++编写的基础组件库。已接入Android、iOS、Mac、Windows、WP、UWP等客户端。目前仅支持Android、iOS、Mac平台,其他平台会在后续版本中很快支持。
Mars刚推出来就关注度极高。之所以Mars广受关注的原因,其实搞移动端IM或推送技术的开发者同行都明白,因为移动网络实在太不可靠、太复杂,以至于写出一个能用于大规模用户环境的稳定、省流量、省电、数据传输流畅、弱网络健壮、后台自动保活等技术指标的IM或推送是相当困难的。
更为重要的是,微信的体量和应用规模决定了技术的高度:“It is proved to be effective by billions of WeChat users”.
由于它的跨平台性,开源不到两周,Github上就贡献了6000多个星。
Mars解决了什么问题?
1.提供长连短连两种连接方式
2.常规的网络能力,例如DNS防劫持,动态IP下发,就近接入,容灾恢复
3.贴合移动互联网的网络层解决方案
4.贴合移动端的平台特性:前后台、活跃态、休眠、省电、省流量
那么微信Mars到底有什么用呢?毫无疑问,微信Mars存在的前提就是为了更好的服务微信这个超级IM而存在,最适合干的活就是开发移动端IM了,当然由于提炼的很好,相信移动端推送技术等都是可以使用微信Mars作为网络层lib来使用,从而以微信的成果为起点开发出拥有更加优秀网络体验的移动端富网络应用。
下面是微信官方给出的使用Mars的理由:
Mars是一个结合移动App所设计的基于Socket层的解决方案。在网络调优方面,有更好的可控性,不过对于HTTP完整协议的支持,已经考虑在后续版本中加入。
建议:
如果你想一次学习,多个平台使用,Mars是一个比较好的选择。
如果你面对的用户是移动网络下的用户,Mars更是一个比较好的选择。
如果你只是想使用完整的HTTP协议,Mars暂时可能不适合你。