博客 / 詳情

返回

全平台開源即時通訊IM框架MobileIMSDK:7端+TCP/UDP/WebSocket協議

一、基本介紹
圖片
MobileIMSDK是一套全平台原創開源IM通信層框架:

  • 超輕量級、高度提煉,lib包50KB以內;
  • 精心封裝,一套API同時支持UDP、TCP、WebSocket三種協議(可能是全網唯一開源的);
  • 客户端支持iOS、Android、標準Java、H5、微信小程序、Uniap、鴻蒙Next(Demo完整源碼);
  • 服務端基於Netty,性能卓越、易於擴展 new;
  • 可與姊妹工程 MobileIMSDK-Web 無縫互通實現網頁端聊天或推送等;
  • 可應用於跨設備、跨網絡的聊天APP、企業OA、消息推送等各種場景。

二、源碼倉庫同步更新
GitHub.com:

代碼託管: https://github.com/JackJiang2011/MobileIMSDK
技術社區: 點擊查看更多資料
碼雲gitee:

代碼託管: http://git.oschina.net/jackjiang/MobileIMSDK
技術社區: 點擊查看更多資料

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

四、框架組成
整套MobileIMSDK框架由以下7部分組成:

  • Android客户端SDK:用於開發Android版即時通訊客户端,支持Android 4.0及以上版本,查看API文檔;
  • iOS客户端SDK:用於開發iOS版即時通訊客户端,支持iOS 12.0及以上版本,查看API文檔;
  • Java客户端SDK:用於開發跨平台的PC端即時通訊客户端,支持標準Java 1.6及以上版本,查看API文檔;
  • H5客户端SDK:查看精編注釋版;
  • 微信小程序端SDK:查看精編注釋版;
  • Uniapp端SDK:查看精編注釋版;
  • 鴻蒙Next端SDK:SDK暫無開源版(查看精編注釋版),Demo完整工程源碼;
  • 服務端SDK:用於開發即時通訊服務端,支持Java 1.7及以上版本,查看API文檔;

整套MobileIMSDK框架的架構組成:
圖片
MobileIMSDK一直在持續開發和升級中,鴻蒙Next客户端是MobileIMSDK工程的最新成果。

五、技術特徵

  • 久經考驗:歷經10年,從Andriod 2.3、iOS 5.0 時代持續升級至今(絕不爛尾);
  • 超輕量級:高度提煉,lib包50KB以內;
  • 多種協議:可能是全網唯一開源可同時支持UDP、TCP、WebSocket三種協議的同類框架;
  • 多種網絡:精心優化的TCP、UDP、WebSocket協議實現,可應用於衞星網、移動網、嵌入式物聯網等場景;
  • 多端覆蓋:客户端支持iOS、Android、標準Java、H5、微信小程序、Uniapp、鴻蒙Next;
  • 高效費比:獨有的UDP協議實現,無連接特性,同等條件下可實現更高的網絡負載和吞吐能力;
  • 消息走向:支持即時通訊技術中消息的所有可能走向,共3種(即C2C、C2S、S2C);
  • 粘包半包:優雅解決各端的TCP經典粘包和半包問題,底層封裝,應用層完全無感知;
  • QoS機制:完善的消息送達保證機制(自動重傳、消息去重、狀態反饋等),不漏過每一條消息;
  • 健壯可靠:實踐表明,非常適於在高延遲、跨洲際、不同網絡制式環境中穩定、可靠地運行;
  • 斷網恢復:擁有網絡狀況自動檢測、斷網自動治癒的能力;
  • 原創算法:核心算法和實現均為原創,保證了持續改進和提升的空間;
  • 多種模式:預設多種實時靈敏度模式,可根據不同場景控制即時性、流量和客户端電量消耗;
  • 數據壓縮:自有協議實現,未來可自主定製數據壓縮,靈活控制客户端的流量、服務端網絡吞吐;
  • 高度封裝:高度封裝的API接口,保證了調用的簡易性,也使得可應用於更多的應用場景;
  • Web支持:可與姊妹工程 MobileIMSDK-Web 無縫互通實現網頁端聊天或推送等;
  • 擴展性好:服務端基於Netty,繼承了Netty的優秀高可擴展性;
  • 性能優異:服務端繼承了Netty高性能、高吞吐特性,適用於高性能服務端場景。

六、演示程序

  • Android客户端 Demo:點此安裝和使用;
  • iOS客户端 Demo:點此安裝和使用;
  • Java客户端 Demo:點此安裝和使用;
  • H5客户端 Demo:點此查看介紹;
  • 微信小程序端 Demo:點此查看介紹;
  • Uniapp端 Demo:點此查看介紹;
  • 鴻蒙Next端 Demo:點此查看介紹 new;
  • 服務端 Demo:點此安裝和使用。

七、應用案例
RainbowChat是一款基於MobileIMSDK的產品級聊天APP,更多詳情:點擊下載體驗 或 查看運行截圖。

① 基於MobileIMSDK的產品級聊天APP:

▶ 詳細介紹、下載體驗 或 查看運行截圖。

② MobileIMSDK在高網絡延遲下的案例:

▶ 某款基於MobileIMSDK的商業商品,曾運營於跨洲際的複雜網絡環境下,端到端通信延遲在洲際網絡繁忙時可高達600ms以上(與服務端的單向延遲約為300ms左右,而通常大家訪問國內主流門户的延遲約為20~50ms),某段時期的非敏感運營數據 點此查看。

八、打包下載(all in one)
① 最新發布版(國外地址):Github打包下載
② 最新發布版(國內地址):碼雲gitee打包下載(訪問速度快!)
説明:最新發布版打包內容中,已包含完整的demo源碼、sdk源碼、api文檔、編譯後的分發包等。

九、典型應用場景
場景1:聊天APP

應用説明:可用於開發類似於微信、QQ等聊天工具。

消息走向:需使用C2C、C2S、S2C全部類型。

特別説明:MobileIMSDK並未定義聊天應用的應用層邏輯和協議,開發者可自行定義並實現之。

場景2:消息推送

應用説明:可用於需要向客户端實時推送信息的各種類型APP。

消息走向:僅需使用S2C 1種消息走向,屬MobileIMSDK的最簡單應用場景。

場景3:企業OA

應用説明:可用於實現企業OA的指令、公文、申請等各種消息實時推送,極大提升用户體驗,並可延伸至移動設備。

消息走向:僅需使用S2C 1種消息走向,屬MobileIMSDK的最簡單應用場景。

場景4:企業OA的增強型

應用説明:可用於實現企業OA中各種系統級、用户級消息的實時互動,充分利用即時通訊技術提升傳統OA的價值。

消息走向:可使用C2C、C2S、S2C全部類型,這與聊天APP在很多方面已無差別,但企業OA有自已的用户關係管理模型和邏輯,較之全功能聊天APP要簡單的多。

十、開發指南

  • Android客户端開發指南:點此查看;
  • iOS客户端開發指南:點此查看;
  • Java客户端開發指南:點此查看;
  • H5客户端開發指南:點此查看;
  • 微信小程序端開發指南:點此查看;
  • Uniapp端開發指南:點此查看;
  • 鴻蒙Next端開發指南:點此查看;
  • Server端開發指南:點此查看。

附錄1:Demo截圖
1、在鴻蒙Next端運行效果:

編譯和運行:查看鴻蒙Next端Demo完整源碼。
圖片

2、Android端、iOS端運行效果

安裝和使用:進入Android版Demo幫助頁、進入iOS版Demo幫助頁。
圖片

圖片

3、H5端運行效果
圖片

4、微信小程序端運行效果
圖片

5、Uniapp端運行效果
圖片

6、Windows 運行效果

安裝和使用:進入Java版Demo幫助頁。
圖片
7、Mac OS X 運行效果
安裝和使用:進入Java版Demo幫助頁。
圖片
8、MobileIMSDK-Web版客户端Demo運行效果:
8.1)MobileIMSDK-Web在手機端瀏覽器運行效果:(如何獲取MobileIMSDK-Web版:點此進入)
圖片
8.2)MobileIMSDK-Web在PC端瀏覽器運行效果:(如何獲取MobileIMSDK-Web版:點此進入)
圖片

附錄2:基於MobileIMSDK的全功能IM【案例】

 關於RainbowChat的更多資料請見:RainbowChat前端APP功能截圖網頁 (* 推薦 - 真機實拍視頻:Andriod端、iOS端)。
圖片

圖片

圖片

圖片

附錄3:基於MobileIMSDK-Web的網頁端IM系統【案例】下圖為RainbowChat-Web的主界面(更多截圖點此進入、更多演示視頻點此進入):
圖片
下圖為RainbowChat-Web的主界面[聊天窗全屏時] (更多截圖點此進入、更多演示視頻點此進入):
圖片

下圖為RainbowChat-Web的主界面[獨立UI效果] (更多截圖點此進入、更多演示視頻點此進入):
圖片
(以上內容同步發佈於:http://www.52im.net/thread-52-1-1.html )

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.