全平臺開源即時通訊IM框架MobileIMSDK:7端+TCP/UDP/WebSocket協議,鴻蒙NEXT端已發布,5.7K Stars

一、基本介紹

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部分組成:

  1. Android客戶端SDK:用于開發Android版即時通訊客戶端,支持Android 4.0及以上版本,查看API文檔;
  2. iOS客戶端SDK:用于開發iOS版即時通訊客戶端,支持iOS 12.0及以上版本,查看API文檔;
  3. Java客戶端SDK:用于開發跨平臺的PC端即時通訊客戶端,支持標準Java 1.6及以上版本,查看API文檔;
  4. H5客戶端SDK:查看精編注釋版;
  5. 微信小程序端SDK:查看精編注釋版;
  6. Uniapp端SDK:查看精編注釋版;
  7. 鴻蒙Next端SDK:SDK暫無開源版(查看精編注釋版),Demo完整工程源碼;
  8. 服務端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高性能、高吞吐特性,適用于高性能服務端場景。

六、演示程序

  1. Android客戶端 Demo:點此安裝和使用;
  2. iOS客戶端 Demo:點此安裝和使用;
  3. Java客戶端 Demo:點此安裝和使用;
  4. H5客戶端 Demo:點此查看介紹;
  5. 微信小程序端 Demo:點此查看介紹;
  6. Uniapp端 Demo:點此查看介紹;
  7. 鴻蒙Next端 Demo:點此查看介紹?new;
  8. 服務端 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要簡單的多。

十、開發指南

  1. Android客戶端開發指南:點此查看;
  2. iOS客戶端開發指南:點此查看;
  3. Java客戶端開發指南:點此查看;
  4. H5客戶端開發指南:點此查看;
  5. 微信小程序端開發指南:點此查看;
  6. Uniapp端開發指南:點此查看;
  7. 鴻蒙Next端開發指南:點此查看;
  8. 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.pswp.cn/news/904042.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904042.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904042.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot商城平臺系統設計與開發

概述 SpringBoot商城平臺系統實現了商品展示、購物車、訂單管理等商城核心功能,適合作為計算機專業設計項目或商城項目開發參考,實現商城平臺的核心功能,學習商品管理、訂單處理、支付集成等關鍵技術實現。 主要內容 1. 前臺用戶功能模塊 …

【網絡原理】深入理解HTTPS協議

本篇博客給大家帶來的是網絡原理的知識點, 由于時間有限, 分三天來寫, 本篇為線程第三篇,也是最后一篇. 🐎文章專欄: JavaEE初階 🚀若有問題 評論區見 ? 歡迎大家點贊 評論 收藏 分享 如果你不知道分享給誰,那就分享給薯條. 你們的支持是我不斷創作的動…

【C語言練習】018. 定義和初始化結構體

018. 定義和初始化結構體 018. 定義和初始化結構體1. 定義結構體示例1:定義一個簡單的結構體輸出結果2. 初始化結構體示例2:在聲明時初始化結構體輸出結果示例3:使用指定初始化器初始化結構體(C99及以上標準支持)輸出結果3. 結構體數組示例4:定義和初始化結構體數組輸出結…

3D版同步幀游戲

以下是實現一個3D版同步幀游戲的詳細步驟與完整代碼示例。我們將以第一人稱射擊游戲(FPS)為原型,重點講解3D空間中的同步機制優化。 項目升級:3D版核心改動 1. 3D坐標系與消息結構 // common/messages.go type Vector3 struct {X float32 `json:"x"`Y float32 `…

卷積神經網絡進化史:從LeNet-5到現代架構的完整發展脈絡

摘要 本文系統梳理卷積神經網絡(CNN)從誕生到繁榮的發展歷程。從1998年Yann LeCun開創性的LeNet-5出發,重點解析2012年引爆深度學習革命的AlexNet,并詳細拆解后續演進的五大技術方向:網絡深度化(VGG)、卷積功能強化(ResNet)、檢測任務遷移(F…

在 Windows 中安裝 Pynini 的記錄

#工作記錄 概述 Pynini 是一個用于加權有限狀態文法編譯的 Python 庫,廣泛應用于自然語言處理(NLP)領域。以下記錄旨在用于回顧和幫助大家在 Windows 系統中安裝 Pynini。 安裝思路: 優先用conda虛擬環境 或 在python3.12的vir…

深挖Java之:運算符與輸入器

今天我要介紹的是在Java中對于運算符與輸入器的一些基礎語法運算符與輸入器的代碼示例以及應用場景,他們在應用上的優勢與劣勢作說明介紹: 介紹:運算符與輸入器是兩個基礎且關鍵的概念,它們共同構成了程序與用戶、程序與數據之間…

動態規劃之多狀態問題1

題目解析: 也就是給一個預約數組,選擇一些數字,讓其總和最大,但不能選擇相鄰的兩個數字 算法原理: 依舊可以根據經驗題目 以dp[i]位置結尾時,巴拉巴拉 根據題目要求補充完整,dp[i]&#xff…

計網_可靠傳輸ARQ機制

2024.09.04:網工老姜&beokayy網工學習筆記 第5節 可靠傳輸機制 5.1 可靠傳輸5.2 ARQ機制、ARQ協議5.3 ARQ簡介(可靠傳輸)5.3.1 停止等待協議(1)無差錯情況(2)有差錯情況確認丟失確認遲到 5.…

華為eNSP:多區域集成IS-IS

一、什么是多區域集成IS-IS? 多區域集成IS-IS是一種基于中間系統到中間系統(IS-IS)協議優化的網絡架構設計,通過多區域協同、路徑優化和擴展性增強實現高效路由管理,其核心特征如下: 1、分布式架構與多區…

自定義Dockerfile,發布springboot項目

(1) 上傳jar包 把hello項目打成一個可執行的jar包 hello-1.0-SNAPSHOT.jar,把這個jar包上傳到linux中 (2) 創建文件,文件名my_hello(就是一個Dockerfile),內容如下 #1.定義父鏡像(定義當前工程依賴的環境):…

vscode源代碼管理Tab-文件右側標志(M、A 等)的含義

Git 常用標志(M、A 等)的含義 在 VSCode 的源代碼管理(Source Control)標簽頁中,文件右側顯示的 Monaco 裝飾徽章(Badge)(如 M、A 等),本質上是對 Git 文件狀態標志 的可視化呈現。…

基于 vue-flow 實現可視化流程圖

vue-flow 是一個基于 Vue.js 的強大且靈活的可視化流程圖庫,它允許開發者輕松創建交互式的流程圖、工作流圖、節點圖等。 主要特點 易于使用 :提供了簡潔的 API 和組件,開發者可以快速上手并創建復雜的流程圖。高度可定制 :支持…

【愚公系列】《Manus極簡入門》015-時間管理顧問:“商業時間規劃大師”

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

OpenRouter:輕松集成多家AI大模型的統一接口平臺指南

想象一下,你已經在系統中集成了 OpenAI API,但現在你希望通過 Google Gemini 和 Anthropic API 擴展能力。你會為每個服務商單獨創建和管理賬戶,使用不同的 SDK,讓代碼變得更加復雜嗎?還是更傾向于只用一行代碼就能訪問…

iOS啟動優化:從原理到實踐

前言 在iOS應用開發中,啟動速度是影響用戶體驗的重要因素之一。研究表明,啟動時間每增加1秒,用戶留存率就會下降約7%。本文將深入探討iOS啟動優化的各個方面,從底層原理到具體實踐,幫助開發者打造更快的應用啟動體驗。…

洛谷 P1850 [NOIP 2016 提高組] 換教室

題目傳送門 前言 終于自己想出概率期望 d p dp dp 的狀態了,但是依舊沒能相對轉移方程。(招笑) 暴力 這題部分分和特殊情況分給的挺多的,所以先拿部分分。 一、思路 先跑一邊 F l o y d Floyd Floyd 最短路求出兩點間最短距…

基于Springboot+Vue3.0的前后端分離的個人旅游足跡可視化平臺

文章目錄 0、前言1、前端開發1.1 登錄注冊頁面1.2 首頁1.3 足跡管理1.3.1 足跡列表1.3.2 添加足跡1.4 個人中心1.4.1 足跡成就1.4.2 個人信息1.4.3 我的計劃2、后端開發2.1 用戶接口開發2.2 足跡點接口2.3 旅游計劃接口3、完整代碼資料下載0、前言 項目亮點: 前端用戶權限動態…

大數據應用開發與實戰(1)

一、Matplotlib 基礎認知 功能特性:是 Python 強大的繪圖庫,能將數據以多樣化的圖表形式呈現,涵蓋靜態、動態和交互式圖表,支持多種輸出格式,滿足不同場景下的數據可視化需求。 二Matplotlib Pyplott 函數繪圖技巧&a…

神經網絡的基本概念與深度解析——基于生物機制的仿生建模與工程實現

廣義上講,神經網絡是泛指生物神經網絡與人工神經網絡這兩個方面。所謂生物神經網絡是指由中樞神經系統(腦和脊髓)及周圍神經系統(感覺神經、運動神經、交感神經、副交感神經等)所構成的錯綜復雜的神經網絡,…