在移動互聯(lián)網(wǎng)時代,用戶對信息到達度的忍耐力變得越來越低,超過3秒便開始變得不安,超過7秒開始出現(xiàn)用戶流失。這種現(xiàn)象,在用手機溝通時尤為強烈,用戶對信息發(fā)送延遲的忍耐度是按秒計算,而信息丟失更成為一件不可以接受的事情。但是,在一秒鐘之內(nèi)成功完成一張圖片或一段文字發(fā)送,這個簡單動作的背后,技術(shù)卻做了大量的努力。可能需要解決弱網(wǎng)環(huán)境的傳輸、網(wǎng)絡(luò)動態(tài)切換的問題、不同終端的問題等,用戶體驗的每一小步進步,在技術(shù)領(lǐng)域都是一個大的跨越。
6月27日,中關(guān)村Binggo Café,CSDN攜手容聯(lián)·云通訊線下沙龍就“IM 5.0時代App社交化”與開發(fā)者進行深入的溝通與交流,共同探討移動IM背后的技術(shù)奧秘,剖析云通訊IM如何聚焦場景·連接服務(wù),對移動IM的極致化追求。
云通訊IM:聚焦場景·連接服務(wù)
容聯(lián)云通訊產(chǎn)品總監(jiān) 張靖宇以《云通訊IM:聚焦場景·連接服務(wù)》為主題,介紹了容聯(lián)云通訊的發(fā)展史,以及移動IM云通訊的基本功能和重構(gòu)之路。容聯(lián)云通訊提供五大能力集,或者五大方面的服務(wù),分別是IM通訊云、VoIP、會議(包括語音會議,視頻會議,電話會議)、短信驗證服務(wù)、呼叫中心,所有的能力都是以API的方式提供出來,結(jié)合大家的應(yīng)用場景去調(diào)用。
張靖宇重點介紹了容聯(lián)云通訊IM,目前基本功能包括:設(shè)備推送功能、多終端登錄、客戶端和服務(wù)端獲取歷史記錄功能、服務(wù)端發(fā)送廣播消息和推送設(shè)備以及數(shù)據(jù)統(tǒng)計等。
容聯(lián)云通訊產(chǎn)品總監(jiān) 張靖宇
在4.0接入易用性優(yōu)化之后,容聯(lián)對整套架構(gòu)進行了重構(gòu)。然而,與傳統(tǒng)通訊不同的是,移動通訊包含了弱網(wǎng)絡(luò)、網(wǎng)絡(luò)動態(tài)切換、流量及耗電敏感、終端差異等問題,這也就表示,在對架構(gòu)進行重新設(shè)計并開發(fā)時,必須解決是否使用消息中間件、數(shù)據(jù)庫選擇、狀態(tài)同步、設(shè)備推送以及不丟消息。
在進行重構(gòu)時,容聯(lián)設(shè)定了快、省、穩(wěn)的目標(biāo),這是所有開發(fā)者最關(guān)心的問題。首先,登陸、發(fā)送消息要快,對此,容聯(lián)分別采用了無DNS設(shè)計、后臺輪詢測速、無注冊流程、兼容用戶賬號體系,以及小包體協(xié)議、多媒體消息通道復(fù)用、push-pull系統(tǒng)架構(gòu)來解決;其次,省電、省流量,容聯(lián)采用ProtoBuffer+自定義協(xié)議、壓縮機制、智能多包合并、包體精簡、重連優(yōu)化等技術(shù)手段來實現(xiàn)流量優(yōu)化,并在省電方面運用網(wǎng)絡(luò)+服務(wù)端動態(tài)調(diào)整、1個字節(jié)的心跳包和心跳空閑機制。此外,以多段ACK確認(rèn)、永久化存儲、排序隊列控制來邏輯保證不丟消息。
IM的技術(shù)與價值
分享完容聯(lián)云通訊的發(fā)展、核心功能以及重構(gòu)之后,在移動通訊行業(yè)擁有10年經(jīng)驗的益動思博科技CTO 袁秋波發(fā)表演講,闡述IM的技術(shù)與價值。IM主要包括三種實現(xiàn)方式,分別為XMPP、第三方服務(wù)和二進制,開發(fā)者該如何進行技術(shù)選型?袁秋波就其優(yōu)缺點以及使用案例進行了詳細講解。
- XMPP:開源實現(xiàn)多,可進行二次開發(fā),不需要自己實現(xiàn)協(xié)議,但占用網(wǎng)絡(luò)資源多。
- 第三方服務(wù):可直接使用,快速實現(xiàn)產(chǎn)品,節(jié)省資源,但不易于擴展,其服務(wù)穩(wěn)定性依賴于第三方。
- 二進制:傳輸效率高,省流量,但耗時耗力,不易于維護。
益動思博科技CTO 袁秋波
在演講中,袁秋波對基于XMPP協(xié)議的IM整體架構(gòu)進行了剖析。XMPP可擴展消息與存在協(xié)議在早期時是以Jabber協(xié)議為基礎(chǔ)的,后期又進行了一些擴展,在XMPP服務(wù)器開源框架方面,現(xiàn)在比較主流的有OpenFire、Ejabberd和Tigase等。OpenFire基于Mina框架實現(xiàn),擁有著成熟穩(wěn)定、插件多、易集群等優(yōu)點,Ejabberd基于Erlang語言實現(xiàn),高并發(fā)但學(xué)習(xí)成本高,不易于擴展。
袁秋波以O(shè)penFire為例對XMPP進行了詳細講解,OpenFire自帶數(shù)據(jù)庫及用戶認(rèn)證機制,但無法滿足項目中的用戶認(rèn)證要求,因此,通過配置及插件的方式修改OpenFire的用戶認(rèn)證機制,實現(xiàn)OpenFire訪問數(shù)據(jù)庫或用戶鑒權(quán)API。對于文本、圖片以及非實時語音和視頻內(nèi)容可直接使用XMPP的message節(jié)點進行傳輸:
歡聲笑語共論IM技術(shù)
在演講及Q&A環(huán)節(jié)中,還穿插著兩次紅包抽獎活動以及短暫茶歇。參會者在享用各式各樣的美味點心、猛戳手機屏幕參與抽獎的同時,相互之間進行溝通,有些參會者還將自己在IM實踐中遇到的問題與講師進行交流,更有美女聽眾手寫筆記,現(xiàn)場充滿著溫馨濃厚的交流氛圍。