Posted on 2021-07-22 16:02
Jack Jiang 閱讀(165)
評論(0) 編輯 收藏
一、更新內(nèi)容簡介
本次為主要版本更新(本次更新內(nèi)容見文末“MobileIMSDK v6.0更新內(nèi)容 ”一節(jié)),強(qiáng)勢升級,將同時支持TCP、UDP、WebSocket三種協(xié)議,精心封裝之下,實(shí)現(xiàn)同一套API、三種協(xié)議同時并存。
可能是市面上唯一同時支持UDP+TCP+WebSocket三種協(xié)議的同類開源IM框架。
二、MobileIMSDK簡介

MobileIMSDK 是一套專為移動端開發(fā)的原創(chuàng)IM通信層框架:
- 歷經(jīng)8年、久經(jīng)考驗(yàn);
- 超輕量級、高度提煉,lib包50KB以內(nèi);
- 精心封裝,一套API同時支持UDP、TCP、WebSocket三種協(xié)議(可能是全網(wǎng)唯一開源的);
- 客戶端支持 iOS、Android、標(biāo)準(zhǔn)Java、H5、小程序(開發(fā)中..)、Uniapp(開發(fā)中..);
- 服務(wù)端基于Netty,性能卓越、易于擴(kuò)展;

- 可與姊妹工程 MobileIMSDK-Web 無縫互通實(shí)現(xiàn)網(wǎng)頁端聊天或推送等;

- 可應(yīng)用于跨設(shè)備、跨網(wǎng)絡(luò)的聊天APP、企業(yè)OA、消息推送等各種場景。
MobileIMSDK工程始于2013年10月,起初用作某產(chǎn)品的即時通訊底層實(shí)現(xiàn),完全從零開發(fā),技術(shù)自主可控!
您可能需要:查看關(guān)于MobileIMSDK的詳細(xì)介紹。
三、代碼托管同步更新
OsChina.net
GitHub.com
四、MobileIMSDK設(shè)計目標(biāo)
讓開發(fā)者專注于應(yīng)用邏輯的開發(fā),底層復(fù)雜的即時通訊算法交由SDK開發(fā)人員,從而解偶即時通訊應(yīng)用開發(fā)的復(fù)雜性。
五、MobileIMSDK框架組成
整套MobileIMSDK框架由以下5部分組成:
- Android客戶端SDK:用于Android版即時通訊客戶端,支持Android 2.3及以上,查看API文檔;
- iOS客戶端SDK:用于開發(fā)iOS版即時通訊客戶端,支持iOS 8.0及以上,查看API文檔;
- Java客戶端SDK:用于開發(fā)跨平臺的PC端即時通訊客戶端,支持Java 1.6及以上,查看API文檔;
- H5客戶端SDK:資料整理中,不日正式發(fā)布;
- 服務(wù)端SDK:用于開發(fā)即時通訊服務(wù)端,支持Java 1.7及以上版本,查看API文檔。
六、MobileIMSDK v6.0更新內(nèi)容
【重要說明】:
MobileIMSDK v6 為全新版本,新增了對WebSocket協(xié)議的優(yōu)雅支持、多端互踢支持等! 查看詳情
【新增重要特性】:
- 服務(wù)端新增WebSocket協(xié)議支持,一套API優(yōu)雅支持TCP、UDP、WebSocket 3種協(xié)議;
- 支持多端互踢功能(可應(yīng)對復(fù)雜的移動端網(wǎng)絡(luò)變動邏輯對多端互踢算法的影響);
【解決的Bug】:
- [Andriod]解決了斷線后,fireDisconnectedToServer()方法中的一處空指針隱患;
- [iOS] 修復(fù)了TCP版代碼中,調(diào)用[ClientCoreSDK releaseCore]方法會觸發(fā)自動登陸邏輯的bug;
- [服務(wù)端] 解決了UDP協(xié)議下,重連情況下的被踢者已被服務(wù)端注銷會話后,客戶端才發(fā)回登陸響應(yīng)ACK應(yīng)答,導(dǎo)致服務(wù)端錯誤地向未被踢者發(fā)出已登陸者重復(fù)登陸響應(yīng)的問題;
【其它優(yōu)化和提升】:
- [Andriod]廢棄了SDK、Demo代碼中的所有AsyncTask的使用;
- [Andriod]將所有可使用Lambda表達(dá)式的代碼全部用Lambda進(jìn)行了簡化。
- [iOS] 解決了XCode12上編譯SDK的.a包,打包成胖子.a時報“have the same architectures (arm64) and can't be in the same fat output file”的問題;
- [iOS] Demo中所有使用過時的UIAlertView改為UIAlertController實(shí)現(xiàn);
- [iOS] 解決了iOS端SDK工程中兩處因類名重構(gòu)導(dǎo)致的在XCode12.5.1上編譯出錯。
- [服務(wù)端] 將服務(wù)端Demo中的Log4j日志框架升級為最新的Log4j2;
- [服務(wù)端] 服務(wù)端可控制是否為每條消息生成發(fā)送時間戳(可輔助用于客戶端的消息排序邏輯等)。