開源移動端 IM 框架 MobileIMSDK v6.0 釋出!

語言: CN / TW / HK

一、更新內容簡介

本次為主要版本更新(本次更新內容見文末“MobileIMSDK v6.0更新內容 ”一節),強勢升級,將同時支援TCP、UDP、WebSocket三種協議,精心封裝之下,實現同一套API、三種協議同時並存。

可能是市面上唯一同時支援UDP+TCP+WebSocket三種協議的同類開源IM框架。

二、MobileIMSDK簡介

MobileIMSDK 是一套專為移動端開發的原創IM通訊層框架:

  • 歷經8年、久經考驗;
  • 超輕量級、高度提煉,lib包50KB以內;
  • 精心封裝,一套API同時支援UDP、TCP、WebSocket三種協議(可能是全網唯一開源的);
  • 客戶端支援 iOS、Android、標準Java、H5、小程式(開發中..)、Uniapp(開發中..);
  • 服務端基於Netty,效能卓越、易於擴充套件;👈
  • 可與姊妹工程 MobileIMSDK-Web 無縫互通實現網頁端聊天或推送等;👈
  • 可應用於跨裝置、跨網路的聊天APP、企業OA、訊息推送等各種場景。

MobileIMSDK工程始於2013年10月,起初用作某產品的即時通訊底層實現,完全從零開發,技術自主可控!

您可能需要:檢視關於MobileIMSDK的詳細介紹

三、程式碼託管同步更新

OsChina.net

GitHub.com

四、MobileIMSDK設計目標

讓開發者專注於應用邏輯的開發,底層複雜的即時通訊演算法交由SDK開發人員,從而解偶即時通訊應用開發的複雜性。

五、MobileIMSDK框架組成

整套MobileIMSDK框架由以下5部分組成:

  1. Android客戶端SDK:用於Android版即時通訊客戶端,支援Android 2.3及以上,檢視API文件
  2. iOS客戶端SDK:用於開發iOS版即時通訊客戶端,支援iOS 8.0及以上,檢視API文件
  3. Java客戶端SDK:用於開發跨平臺的PC端即時通訊客戶端,支援Java 1.6及以上,檢視API文件
  4. H5客戶端SDK:資料整理中,不日正式釋出;
  5. 服務端SDK:用於開發即時通訊服務端,支援Java 1.7及以上版本,檢視API文件

六、MobileIMSDK v6.0更新內容 

【重要說明】:

MobileIMSDK v6 為全新版本,新增了對WebSocket協議的優雅支援、多端互踢支援等! 檢視詳情

【新增重要特性】:

  1. 服務端新增WebSocket協議支援,一套API優雅支援TCP、UDP、WebSocket 3種協議;
  2. 支援多端互踢功能(可應對複雜的移動端網路變動邏輯對多端互踢演算法的影響);

【解決的Bug】:

  1. [Andriod]解決了斷線後,fireDisconnectedToServer()方法中的一處空指標隱患;
  2. [iOS] 修復了TCP版程式碼中,呼叫[ClientCoreSDK releaseCore]方法會觸發自動登陸邏輯的bug;
  3. [服務端] 解決了UDP協議下,重連情況下的被踢者已被服務端登出會話後,客戶端才發回登陸響應ACK應答,導致服務端錯誤地向未被踢者發出已登陸者重複登陸響應的問題;

【其它優化和提升】:

  1. [Andriod]廢棄了SDK、Demo程式碼中的所有AsyncTask的使用;
  2. [Andriod]將所有可使用Lambda表示式的程式碼全部用Lambda進行了簡化。
  3. [iOS] 解決了XCode12上編譯SDK的.a包,打包成胖子.a時報“have the same architectures (arm64) and can't be in the same fat output file”的問題;
  4. [iOS] Demo中所有使用過時的UIAlertView改為UIAlertController實現;
  5. [iOS] 解決了iOS端SDK工程中兩處因類名重構導致的在XCode12.5.1上編譯出錯。
  6. [服務端] 將服務端Demo中的Log4j日誌框架升級為最新的Log4j2;
  7. [服務端] 服務端可控制是否為每條訊息生成傳送時間戳(可輔助用於客戶端的訊息排序邏輯等)。

七、相關連結

「其他文章」