網(wǎng)易云信Android端高級(jí)技術(shù)架構(gòu)師 周江華

企業(yè)級(jí)IM云服務(wù)市場的黑馬

當(dāng)前,基于移動(dòng)產(chǎn)品服務(wù)和互聯(lián)網(wǎng)+浪潮在國內(nèi)的發(fā)展態(tài)勢,眾多互聯(lián)網(wǎng)公司、新創(chuàng)業(yè)團(tuán)隊(duì)乃至傳統(tǒng)行業(yè)都將目光瞄向了移動(dòng)互聯(lián)市場。而在越來越講求用戶粘度和在線互動(dòng)的當(dāng)下,從網(wǎng)絡(luò)購物到在線教育,從協(xié)同辦公到在線醫(yī)療,各個(gè)行業(yè)各種產(chǎn)品的IM即時(shí)通訊服務(wù)已經(jīng)成為如同工業(yè)時(shí)代水電煤一般基本卻重要的剛性需求。

《中國公有云平臺(tái)白皮書》數(shù)據(jù)顯示,中國云服務(wù)市場增速連續(xù)幾年在65%左右,越來越多的企業(yè)和廠商正在進(jìn)行轉(zhuǎn)型,將會(huì)進(jìn)一步拉動(dòng)云服務(wù)市場的快速發(fā)展。正是看到了這一趨勢的勢不可擋,網(wǎng)易憑借在即時(shí)通訊領(lǐng)域長達(dá)16年的經(jīng)驗(yàn)與技術(shù)積累,推出了網(wǎng)易云信。

據(jù)介紹,網(wǎng)易云信是網(wǎng)易公司集16年IM經(jīng)驗(yàn)打造的即時(shí)通訊云服務(wù)(PaaS),是網(wǎng)易云第一個(gè)開放給市場的云服務(wù)產(chǎn)品。開發(fā)者通過集成客戶端SDK和云端OPEN API,即可快速實(shí)現(xiàn)強(qiáng)大的IM功能,作為PaaS服務(wù)模式的網(wǎng)易云信全面支持Android、iOS、Web、PC等多平臺(tái)。

截至2016年9月,獲得56項(xiàng)技術(shù)專利,通過CSA-STAR和ISO27001雙重國際權(quán)威認(rèn)證的網(wǎng)易云信,已經(jīng)有9萬+開發(fā)者接入,覆蓋用戶3億,在教育、醫(yī)療、O2O、游戲、社交等行業(yè)都擁有眾多用戶支持,包括學(xué)而思網(wǎng)校、網(wǎng)易云音樂、寶寶樹等知名APP均已接入網(wǎng)易云信的IM服務(wù)。

222

移動(dòng)IM之痛

周江華表示,相對(duì)于PC端,IM在移動(dòng)端的情況更為復(fù)雜。首先是移動(dòng)網(wǎng)絡(luò)三大特點(diǎn)——慢、斷、貴,這也就需要更多考慮到用戶需求的復(fù)雜性。而且移動(dòng)終端,尤其是Android系統(tǒng)自身的資源限制。內(nèi)存、電量、流量,都很珍貴。一方面,Android系統(tǒng)的Low Memory Killer機(jī)制隨時(shí)有可能強(qiáng)制關(guān)閉IM以釋放更多內(nèi)存,另一方面移動(dòng)網(wǎng)絡(luò)的弱網(wǎng)環(huán)境,乃至閑置斷聯(lián),都對(duì)IM長時(shí)間在線提出了考驗(yàn)。

此外,還有復(fù)雜的Android生態(tài)環(huán)境,尤其是各家ROM逐步加大了對(duì)后臺(tái)應(yīng)用的控制力度,導(dǎo)致IM在后臺(tái)?;畋_B難度越來越大。

“即時(shí)性要求有新消息時(shí)能夠立即收到,如果程序在后臺(tái),則要能立即收到推送通知。而通信則要求穩(wěn)定可靠,系統(tǒng)不宕機(jī),程序不崩潰,傳遞消息時(shí)不會(huì)被攔截監(jiān)聽,消息不丟,順序不亂,不重復(fù)。如果包含音視頻聊天,則要求延遲低,流暢不卡頓。這兩點(diǎn)說起來容易,但是,要真正做出一套穩(wěn)定可靠的商用級(jí)IM系統(tǒng),挑戰(zhàn)非常之多?!敝芙A說。

多維度技術(shù)優(yōu)化策略保障穩(wěn)定

長期以來,提升消息推送達(dá)到率和到達(dá)速度,優(yōu)化網(wǎng)絡(luò)利用效率,節(jié)省系統(tǒng)資源,一直都是Android開發(fā)的核心和基礎(chǔ),不過,新技術(shù),新方法也都在不停的涌現(xiàn)。

針對(duì)移動(dòng)場景的弱網(wǎng)環(huán)境,為了確保真正的穩(wěn)定,網(wǎng)易云信在多個(gè)維度上采取了優(yōu)化措施,首先采用了特殊設(shè)計(jì)的高性能二進(jìn)制網(wǎng)絡(luò)協(xié)議,并使用了非常精簡的協(xié)議頭,盡量減少數(shù)據(jù)包大小。心跳間隔根據(jù)網(wǎng)絡(luò)情況動(dòng)態(tài)調(diào)整。掉線后,會(huì)有自動(dòng)重連和快速重登,為了節(jié)省流量電量,以及防止造成對(duì)服務(wù)器的信令風(fēng)暴,重連間隔會(huì)指數(shù)隨機(jī)倍增退避。

在弱網(wǎng)環(huán)境下,快速的上傳下載,更少的等待時(shí)間可以帶來更好的用戶體驗(yàn)。網(wǎng)易云信擁有斷點(diǎn)續(xù)傳、Pipeline技術(shù)、邊錄邊傳三大特色。斷點(diǎn)續(xù)傳可以減少因網(wǎng)絡(luò)原因?qū)е碌闹貜?fù)傳輸,減少傳輸時(shí)間,節(jié)省流量。Pipeline技術(shù)則可以重疊利用http請(qǐng)求的響應(yīng)等待時(shí)間,加快傳輸速度。發(fā)送語音消息時(shí),錄一段就發(fā)送一段,等到錄制完畢時(shí),只需要發(fā)送最后一段數(shù)據(jù),可以做到錄完就傳完發(fā)送的效果。

同時(shí),為了能夠保證程序在后臺(tái)的存活,云信SDK還采用的獨(dú)特的分層架構(gòu),并設(shè)立了獨(dú)立的長連接結(jié)合多元化的推送通道的方式,不僅大大減少了CPU和內(nèi)存資源的占用,更提高了信息到達(dá)率,真正做到保活保連。

 

 

分享到

zhoub

相關(guān)推薦