一、基本介紹
MobileIMSDK - 微信小程序端是一套基于微信原生 WebSocket 的即時通訊庫:
1)超輕量級回铛、無任何第 3 方庫依賴(開箱即用)狗准;
2)純 JS 編寫、ES6 語法茵肃、高度提煉腔长,簡單易用;
3)基于微信原生 WebSocket API验残,簡潔優(yōu)雅捞附;
4)支持運行于任何支持微信小程序的手機端;
5)能與MobileIMSDK的各種客戶端完美互通您没;
6)可應(yīng)用于微信小程序中的消息推送鸟召、客服聊天、企業(yè) OA氨鹏、IM 等場景欧募。
二、與 MobileIMSDK 的關(guān)系
MobileIMSDK - 微信小程序端是基于微信原生 WebSocket 協(xié)議的MobileIMSDK配套客戶端庫喻犁。
MobileIMSDK是一套專為移動端開發(fā)的開源原創(chuàng) IM 通信層框架:
歷經(jīng) 8 年槽片、久經(jīng)考驗何缓;
超輕量級、高度提煉还栓,lib 包 50KB 以內(nèi)碌廓;
精心封裝,一套 API 同時支持?UDP剩盒、TCP谷婆、WebSocket?三種協(xié)議(可能是全網(wǎng)唯一開源的);
客戶端支持iOS辽聊、Android纪挎、標準 Java、H5跟匆、小程序异袄、Uniapp(開發(fā)中..);
服務(wù)端基于 Netty玛臂,性能卓越烤蜕、易于擴展;??
可與姊妹工程MobileIMSDK-Web無縫互通實現(xiàn)網(wǎng)頁端聊天或推送等迹冤;??
可應(yīng)用于跨設(shè)備讽营、跨網(wǎng)絡(luò)的聊天 APP、企業(yè) OA泡徙、消息推送等各種場景橱鹏。
以下是MobileIMSDK的最新通信架構(gòu)圖:
MobileIMSDK的客戶端庫一直在持續(xù)開發(fā)和升級中,目前?基于 Uniapp 的 MobileIMSDK 客戶端正在開發(fā)中?堪藐。
三莉兰、設(shè)計目標
直接使用原生的微信小程序 WebSocket 有以下問題和劣勢:
1)功能有限:沒有心跳保活礁竞、斷線重連贮勃、消息送達保證(重傳和去重)等即時通訊關(guān)鍵算法和邏輯;
2)API 簡陋:在如此有限的原生 API下苏章,能邏輯清晰地實現(xiàn)并組合心跳奔偶危活、斷線重連枫绅、消息送達保證等算法泉孩,需要相當高的技術(shù)掌控力;
3)邏輯耦合:經(jīng)驗欠缺的開發(fā)人員并淋,會將 WebSocket 通信與前端 UI 界面代碼混在一起寓搬,使得 UI 界面的重構(gòu)、維護县耽、改版都非常困難句喷。
針對以上問題镣典,而?MobileIMSDK - 微信小程序端庫將讓開發(fā)者專注于 UI 應(yīng)用層的開發(fā),網(wǎng)絡(luò)通信層的專業(yè)代碼交由 SDK 開發(fā)人員唾琼,從而解偶 UI 前端和通信層的邏輯耦合性兄春,大大降低技術(shù)復雜性。
MobileIMSDK - 微信小程序端庫的設(shè)計目標是為您的開發(fā)帶來以下便利:
1)界面與通信解偶:UI 界面與網(wǎng)絡(luò)通信代碼解耦锡溯,UI 界面的重構(gòu)赶舆、維護、改版都非常容易和優(yōu)雅祭饭;
2)輕量級和兼容性:受益于堅持原生微信小程序 WebSocket API芜茵,簡潔輕量,無需任何額外依賴倡蝙;
3)核心內(nèi)聚和收斂:得益于長期的提煉和經(jīng)驗積累九串,SDK 核心層高度封裝,開發(fā)者無需理解復雜算法即可簡單上手寺鸥。
4)純 JS 輕量級實現(xiàn):SDK 為純 JS 編寫蒸辆、ES6 語法,無重量級框架和庫依賴析既,可干凈利落地對接各種既有系統(tǒng)。
四谆奥、技術(shù)亮點
輕量易使用:超輕量級 —— 純 JS 編寫且無任何第 3 方庫依賴眼坏,高度提煉 —— 簡單易用;
代碼現(xiàn)代感:盡可能優(yōu)先使用 ES6 語法酸些,摒棄舊式 JS 語法的年代感宰译;
兼容性很好:基于微信原生 WebSocket API,可很好地運行于支持微信小程序的手機端魄懂;
斷網(wǎng)恢復能力:擁有網(wǎng)絡(luò)狀況自動檢測沿侈、斷網(wǎng)自動治愈的能力;
送達保證機制:完善的 QoS 消息送達保證機制(多重保障)市栗,不漏過每一條消息缀拭;
通信協(xié)議封裝:實現(xiàn)了一個對上層透明的即時通訊通信協(xié)議模型;
身份認證機制:實現(xiàn)了簡單合理的身份認證機制填帽;
完善的 log 信息:在開發(fā)調(diào)試階段蛛淋,確保每一個算法關(guān)鍵步驟都有日志輸出,讓您的運行調(diào)試更為便利篡腌;
界面代碼解耦:實現(xiàn)了 UI 界面代碼與 SDK 網(wǎng)絡(luò)通信代碼解偶褐荷,防止界面代碼跟 IM 核心代碼混在一起,不利于持續(xù)升級嘹悼、重用和維護叛甫;
聊天協(xié)議兼容:實現(xiàn)了與MobileIMSDK 各種客戶端完全兼容的協(xié)議模型层宫。
五、Demo 運行截圖
六其监、詳細介紹
① MobileIMSDK - 微信小程序端的詳細介紹:點此查看??
② MobileIMSDK - 微信小程序端的開發(fā)手冊:點此查看??
③ MobileIMSDK 開源框架的詳細介紹:https://gitee.com/jackjiang/MobileIMSDK??