一、更新內容簡介
本次更新爲主版本更新,更新內容包含了簡化了消息發送目標的方式、支持Web版與APP版互通、優化了Protocal協議結構等主要升級,詳細更新內容見“版本更新說明”部分。
重要提示:因 MobileIMSDK v3 修改了核心層,已無法與 MobileIMSDK v2.x 兼容,請使用v2.x版的開發者勿貿然升級,如有疑問請發貼討論!
二、MobileIMSDK簡介
MobileIMSDK是一套專爲移動端開發的開源即時通訊高可重用框架:
- 超輕量級、高度提煉,lib包50KB以內;
- 完全基於UDP協議實現;
- 客戶端支持iOS、Android、標準Java平臺;
- 可應用於跨設備、跨網絡的聊天APP、企業OA、消息推送等各種場景。
MobileIMSDK工程始於2013年10月(2017年06月26日發佈了最新版v3.0),起初用作某產品的即時通訊底層實現,完全從零開發。MobileIMSDK現已公開並免費供開發者使用,希望對需要的人有所啓發和幫助。
您可能需要:查看更多關於MobileIMSDK的疑問及解答。
三、代碼託管同步更新
OsChina.net
- 代碼託管: http://git.oschina.net/jackjiang/MobileIMSDK
- 項目資料: 點擊查看更多資料
GitHub.com
- 代碼託管: https://github.com/JackJiang2011/MobileIMSDK
- 項目資料: 點擊查看更多資料
四、MobileIMSDK設計目標
讓開發者專注於應用邏輯的開發,底層複雜的即時通訊算法交由SDK開發人員,從而解偶即時通訊應用開發的複雜性。
五、MobileIMSDK框架組成
整套MobileIMSDK框架由以下4部分組成:
- Android客戶端SDK:用於Android版即時通訊客戶端,支持Android 2.3及以上,查看API文檔;
- iOS客戶端SDK:用於開發iOS版即時通訊客戶端,支持iOS 6.0及以上,查看API文檔;
- Java客戶端SDK:用於開發跨平臺的PC端即時通訊客戶端,支持Java 1.5及以上,查看API文檔;
- 服務端SDK:用於開發即時通訊服和端,支持Java 1.5及以上版本,查看API文檔。
另:MobileIMSDK-Web版爲獨立工程,如有需要請聯繫作者。
六、MobileIMSDK v3.0更新內容
【新增重要特性】
- 簡化了消息發送目標的方式:由原user_id方式改爲使用用戶名的方式(即取消了每次登陸由服務端生成user_id的方式,從而極大地簡化應用層通信的API調用和邏輯代碼);
- 支持Web版與APP版互通(MobileIMSDK-Web版爲另一獨立工程,不包含在 MobileIMSDK v3 版之內);
- 優化了Protocal協議結構:增加了typeu用戶自定義協議類型字段,從而大大簡化了用戶自義協議類型的使用;
【解決的Bug】
- [android]解決了當MobileIMSDK運行於有線電纜網絡模式下不能正確判斷網絡連接事件的問題;
- [Android、java][bug]修正了Demo中首次登陸時使用了錯誤的ip後再改成正確的ip時卻不能登陸的問題;
- [Android、java、iOS]解決了客戶端(Android、iOS、Java)登陸時當服務端返回的認證結果code不爲0時,客戶端會進入反覆登陸的死循環當中;
【其它優化和提升】
- [服務端]服務端定時器都由javax.swing.Timer改爲java.util.Timer,提高可靠性;
- [服務端]重構了服務端代碼,簡化算法的理解、增強代碼可讀性;
- [服務端]升級了相關lib包:MINA至最新版2.0.13、gson2.7等;
- [android]SDK代碼依然頑強地支持低至Andriod 2.3.3及以上版本(即Android API Level 10+);
- [iOS] 優化了demo的ui界面在ios10和xcode8下的兼容性問題。
- [iOS] 優化了“MessageQoSEvent中的messagesLost:(NSArray*)lostMessages”爲“messagesLost:(NSMutableArray*)lostMessages”;
- [Android、java、iOS]優化了在掉線情況下的消息發送能儘快作爲“未實時送達”包反饋到UI層從而提升體驗;
- [服務端]因升級MINA2.0.13的需要,服務端SDK運行所需的Java版本已提升至1.7及以上版本;
- [Java、Android]解決了ClientCoreSDK.release()不能正常停掉LocalUDPDataReciever中的網絡監聽線程。