【原創(chuàng)】輕量級移動端即時通訊技術 MobileIMSDK 發(fā)布了
Posted on 2015-12-01 16:06 Jack Jiang 閱讀(3379) 評論(2) 編輯 收藏申明:MobileIMSDK目前為個人原創(chuàng)開源工程,投入了大量的時間和精力,希望對需要的人有所幫助。如需與作者交流,見文章底部個人簽名處,互相學習。Q群:215891622,歡迎共同志趣者學習和交流。
【前言】
MobileIMSDK工程的前身開始于2013年10月,起初用作某產(chǎn)品的即時通訊底層實現(xiàn),完全從零開發(fā)。
因為當時市面上類似的東西可供選擇的不多,在跟某商業(yè)框架的協(xié)議談崩了后,干脆自已開發(fā)了一套。
今年正好業(yè)余有些時間,就整理了出來,希望對需要的人有所啟發(fā)和幫助。
【工程簡介】
MobileIMSDK是一套專為移動端開發(fā)的原創(chuàng)即時通訊高可重用框架:
- 超輕量級、高度提煉,lib包50KB以內(nèi);
- 完全基于UDP協(xié)議實現(xiàn);
- 客戶端支持iOS、Android、標準Java平臺;
- 可應用于跨設備、跨網(wǎng)絡的聊天APP、企業(yè)OA、消息推送等各種場景。
您可能需要:查看更多關于MobileIMSDK的疑問及解答。
【代碼托管同步更新】
GitHub.com
OsChina.net
【設計目標】
讓開發(fā)者專注于應用邏輯的開發(fā),底層復雜的即時通訊算法交由SDK開發(fā)人員
,從而解偶即時通訊應用開發(fā)的復雜性
。
【框架組成】
整套MobileIMSDK框架由以下4部分組成:
- Android客戶端SDK:用于Android版即時通訊客戶端,支持Android 2.3及以上,查看API文檔;
- iOS客戶端SDK:用于開發(fā)iOS版即時通訊客戶端,支持iOS 6.0及以上,查看API文檔;
- Java客戶端SDK:用于開發(fā)跨平臺的PC端即時通訊客戶端,支持Java 1.5及以上,查看API文檔;
- 服務端SDK:用于開發(fā)即時通訊服和端,支持Java 1.5及以上版本,查看API文檔。
【技術特征】
- 超輕量級:高度提煉,lib包50KB以內(nèi);
- UDP實現(xiàn):更好的適應現(xiàn)今的無線網(wǎng)絡環(huán)境;
- 高效費比:UDP的無連接特性,同等條件下可實現(xiàn)更高的網(wǎng)絡負載和吞吐能力;
- 消息走向:支持即時通訊技術中消息的所有可能走向,共3種(即C2C、C2S、S2C);
- QoS機制:完善的消息送達保證機制,不漏過每一條消息;
- 健壯可靠:實踐表明,非常適于在高延遲、跨洲際、不同網(wǎng)絡制式環(huán)境中穩(wěn)定、可靠地運行;
- 斷網(wǎng)恢復:擁有網(wǎng)絡狀況自動檢測、斷網(wǎng)自動治愈的能力;
- 原創(chuàng)算法:核心算法和實現(xiàn)均為原創(chuàng),保證了持續(xù)改進和提升的空間;
- 多種模式:預設多種實時靈敏度模式,可根據(jù)不同場景控制即時性、流量和客戶端電量消耗;
- 數(shù)據(jù)壓縮:自有協(xié)議實現(xiàn),未來可自主定制數(shù)據(jù)壓縮,靈活控制客戶端的流量、服務端網(wǎng)絡吞吐;
- 高度封裝:高度封裝的API接口,保證了調(diào)用的簡易性,也使得可應用于更多的應用場景。
IMMobileSDK 所支持的全部3種即時通訊消息走向分別是:
(1) Client to Client (C2C):即由某客戶端主動發(fā)起,接收者是另一客戶端;
(2) Client to Server (C2S):即由某客戶端主動發(fā)起,接收者是服務端;
(3) Server to Client (S2C):即由服務端主動發(fā)起,接收者是某客戶端。
您可能需要:查看更多關于MobileIMSDK的疑問及解答。
【性能測試】
壓力測試表明,MobileIMSDK用于推送場景時,理論單機負載可接近千萬級。用于聊天應用時,單機負載也可達數(shù)十萬。
當然,每款應用都有各自的特點和差異,請視具體場景具體評估之,測試數(shù)據(jù)僅供參考。
性能測試報告:點此查看。
【演示程序】
【應用案例】
① 基于MobileIMSDK的產(chǎn)品級聊天APP:
② MobileIMSDK在高網(wǎng)絡延遲下的案例:
某款基于MobileIMSDK的商業(yè)商品,曾運營于跨洲際的復雜網(wǎng)絡環(huán)境下,端到端通信延遲在洲際網(wǎng)絡繁忙時可高達600ms以上(與服務端的單向延遲約為300ms左右,而通常大家訪問國內(nèi)主流門戶的延遲約為20~50ms),某段時期的非敏感運營數(shù)據(jù) 點此查看。
【資源下載】
最新發(fā)布版:點擊下載(
內(nèi)含完整demo、api文檔、編譯分發(fā)包等
)。
【開發(fā)指南】
- 討論學習和資料區(qū): 點此進入;
- 移動端即時通訊學習交流群:
215891622
;
- bug和建議請發(fā)送至:
jb2011@163.com。
【關注作者】
- 推薦關注:BeautyEye工程
- 博客地址:點擊入進
- Github主頁:點擊進入
【附錄:Demo截圖】
Android和iOS運行效果:
安裝和使用:
進入Android版Demo幫助頁、進入iOS版Demo幫助頁。
Windows 運行效果:
安裝和使用:
進入Java版Demo幫助頁。
Mac OS X 運行效果:
安裝和使用:
進入Java版Demo幫助頁。
作者:Jack Jiang (點擊作者姓名進入Github)
出處:http://www.aygfsteel.com/jb2011
聯(lián)系方式:QQ: 413980957, 微信: hellojackjiang,Email: jb2011@163.com
Jack Jiang同時是【原創(chuàng)Java Swing外觀工程BeautyEye】和【輕量級移動端即時通訊框架MobileIMSDK】的作者,可前往下載交流。
本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處(也可前往 我的openmob.net空間 找到我)。
作者:Jack Jiang (點擊作者姓名進入Github)
出處:http://www.52im.net/space-uid-1.html
交流:歡迎加入即時通訊開發(fā)交流群 215891622
討論:http://www.52im.net/
Jack Jiang同時是【原創(chuàng)Java
Swing外觀工程BeautyEye】和【輕量級移動端即時通訊框架MobileIMSDK】的作者,可前往下載交流。
本博文
歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處(也可前往 我的52im.net 找到我)。