開源輕量級 IM 框架 MobileIMSDK 的微信小程式端已釋出!

JackJiang發表於2023-04-07

一、基本介紹

MobileIMSDK - 微信小程式端是一套基於微信原生 WebSocket 的即時通訊庫:

1)超輕量級、無任何第 3 方庫依賴(開箱即用);
2)純 JS 編寫、ES6 語法、高度提煉,簡單易用;
3)基於微信原生 WebSocket API,簡潔優雅;
4)支援執行於任何支援微信小程式的手機端;
5)能與 MobileIMSDK 的各種客戶端完美互通;
6)可應用於微信小程式中的訊息推送、客服聊天、企業 OA、IM 等場景。

二、與 MobileIMSDK 的關係

MobileIMSDK - 微信小程式端是基於微信原生 WebSocket 協議的 MobileIMSDK 配套客戶端庫。

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

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

image.png

MobileIMSDK 的客戶端庫一直在持續開發和升級中,目前 基於 Uniapp 的 MobileIMSDK 客戶端正在開發中 。

三、設計目標

直接使用原生的微信小程式 WebSocket 有以下問題和劣勢:

1)功能有限:沒有心跳保活、斷線重連、訊息送達保證(重傳和去重)等即時通訊關鍵演算法和邏輯;
2)API 簡陋:在如此有限的原生 API 下,能邏輯清晰地實現並組合心跳保活、斷線重連、訊息送達保證等演算法,需要相當高的技術掌控力;
3)邏輯耦合:經驗欠缺的開發人員,會將 WebSocket 通訊與前端 UI 介面程式碼混在一起,使得 UI 介面的重構、維護、改版都非常困難。
針對以上問題,而 MobileIMSDK - 微信小程式端庫將讓開發者專注於 UI 應用層的開發,網路通訊層的專業程式碼交由 SDK 開發人員,從而解偶 UI 前端和通訊層的邏輯耦合性,大大降低技術複雜性。

MobileIMSDK - 微信小程式端庫的設計目標是為您的開發帶來以下便利:

1)介面與通訊解偶:UI 介面與網路通訊程式碼解耦,UI 介面的重構、維護、改版都非常容易和優雅;
2)輕量級和相容性:受益於堅持原生微信小程式 WebSocket API,簡潔輕量,無需任何額外依賴;
3)核心內聚和收斂:得益於長期的提煉和經驗積累,SDK 核心層高度封裝,開發者無需理解複雜演算法即可簡單上手。
4)純 JS 輕量級實現:SDK 為純 JS 編寫、ES6 語法,無重量級框架和庫依賴,可乾淨利落地對接各種既有系統。

四、技術亮點

輕量易使用:超輕量級 —— 純 JS 編寫且無任何第 3 方庫依賴,高度提煉 —— 簡單易用;
程式碼現代感:儘可能優先使用 ES6 語法,摒棄舊式 JS 語法的年代感;
相容性很好:基於微信原生 WebSocket API,可很好地執行於支援微信小程式的手機端;
斷網恢復能力:擁有網路狀況自動檢測、斷網自動治癒的能力;
送達保證機制:完善的 QoS 訊息送達保證機制(多重保障),不漏過每一條訊息;
通訊協議封裝:實現了一個對上層透明的即時通訊通訊協議模型;
身份認證機制:實現了簡單合理的身份認證機制;
完善的 log 資訊:在開發除錯階段,確保每一個演算法關鍵步驟都有日誌輸出,讓您的執行除錯更為便利;
介面程式碼解耦:實現了 UI 介面程式碼與 SDK 網路通訊程式碼解偶,防止介面程式碼跟 IM 核心程式碼混在一起,不利於持續升級、重用和維護;
聊天協議相容:實現了與 MobileIMSDK 各種客戶端完全相容的協議模型。

五、Demo 執行截圖

image.png

六、詳細介紹

① MobileIMSDK - 微信小程式端的詳細介紹:點此檢視 ?

② MobileIMSDK - 微信小程式端的開發手冊:點此檢視 ?

③ MobileIMSDK 開源框架的詳細介紹:https://gitee.com/jackjiang/MobileIMSDK ?

相關文章