伴隨著2017年的鐘聲,它的到來給IM的世界帶來了更多的期待。
—— 題記
Mars是什么?
Mars是微信自用的移動端IM網(wǎng)絡(luò)層跨平臺組件庫(文末附源碼地址)。是一個業(yè)務(wù)性無關(guān)、平臺性無關(guān)、使用C++編寫的基礎(chǔ)組件庫。已接入Android、iOS、Mac、Windows、WP、UWP等客戶端。目前僅支持Android、iOS、Mac平臺,其他平臺會在后續(xù)版本中很快支持。
Mars剛推出來就關(guān)注度極高。之所以Mars廣受關(guān)注的原因,其實搞移動端IM或推送技術(shù)的開發(fā)者同行都明白,因為移動網(wǎng)絡(luò)實在太不可靠、太復(fù)雜,以至于寫出一個能用于大規(guī)模用戶環(huán)境的穩(wěn)定、省流量、省電、數(shù)據(jù)傳輸流暢、弱網(wǎng)絡(luò)健壯、后臺自動?;畹燃夹g(shù)指標(biāo)的IM或推送是相當(dāng)困難的。
更為重要的是,微信的體量和應(yīng)用規(guī)模決定了技術(shù)的高度:“It is proved to be effective by billions of WeChat users”.
由于它的跨平臺性,開源不到兩周,Github上就貢獻(xiàn)了6000多個星。
Mars解決了什么問題?
1.提供長連短連兩種連接方式
2.常規(guī)的網(wǎng)絡(luò)能力,例如DNS防劫持,動態(tài)IP下發(fā),就近接入,容災(zāi)恢復(fù)
3.貼合移動互聯(lián)網(wǎng)的網(wǎng)絡(luò)層解決方案
4.貼合移動端的平臺特性:前后臺、活躍態(tài)、休眠、省電、省流量
那么微信Mars到底有什么用呢?毫無疑問,微信Mars存在的前提就是為了更好的服務(wù)微信這個超級IM而存在,最適合干的活就是開發(fā)移動端IM了,當(dāng)然由于提煉的很好,相信移動端推送技術(shù)等都是可以使用微信Mars作為網(wǎng)絡(luò)層lib來使用,從而以微信的成果為起點開發(fā)出擁有更加優(yōu)秀網(wǎng)絡(luò)體驗的移動端富網(wǎng)絡(luò)應(yīng)用。
下面是微信官方給出的使用Mars的理由:

Mars是一個結(jié)合移動App所設(shè)計的基于Socket層的解決方案。在網(wǎng)絡(luò)調(diào)優(yōu)方面,有更好的可控性,不過對于HTTP完整協(xié)議的支持,已經(jīng)考慮在后續(xù)版本中加入。
建議:
如果你想一次學(xué)習(xí),多個平臺使用,Mars是一個比較好的選擇。
如果你面對的用戶是移動網(wǎng)絡(luò)下的用戶,Mars更是一個比較好的選擇。
如果你只是想使用完整的HTTP協(xié)議,Mars暫時可能不適合你。