一、基本介绍

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 同时支持 UDPTCPWebSocket 三种协议(可能是全网唯一开源的);
  • 客户端支持 iOSAndroid标准 JavaH5、小程序、Uniapp(开发中..);
  • 服务端基于 Netty,性能卓越、易于扩展;
  • 可与姊妹工程 MobileIMSDK-Web 无缝互通实现网页端聊天或推送等;
  • 可应用于跨设备、跨网络的聊天 APP、企业 OA、消息推送等各种场景。

以下是 MobileIMSDK 的最新通信架构图:

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 运行截图

六、详细介绍

① MobileIMSDK - 微信小程序端的详细介绍:点此查看

② MobileIMSDK - 微信小程序端的开发手册:点此查看

③ MobileIMSDK 开源框架的详细介绍:https://gitee.com/jackjiang/MobileIMSDK

开源轻量级 IM 框架 MobileIMSDK 的微信小程序端已发布!的更多相关文章

  1. 12.通过微信小程序端访问企查查(采集工商信息)

    需要注意的问题: 一.1.微信端访问企查查小程序需要登录.2.访问抓包获取的url是有时效性的过一段时间就不能用了. http://xcx.qichacha.com/wxa/v1/base/getEn ...

  2. uniapp保存图片到本地(APP和微信小程序端)

    uniapp实现app端和微信小程序端图片保存到本地,其它平台未测过,原理类似. 微信小程序端主要是权限需要使用button的开放能力来反复调起,代码如下: 首先是条件编译两个平台的按钮组件: < ...

  3. 基于NopCommerce框架开发的微信小程序UrShop

    Urshop小程序商城 介绍 UrShop小程序商城 2.0发布啦,发布地址https://gitee.com/urselect/urshop UrShop 根据NopCommerce框架开发的,基于 ...

  4. 干货 | 把Flutter扩展到微信小程序端的探索

    Google Flutter是一个非常优秀的跨端框架,不仅可以运行在Android. iOS平台,而且可以支持Web和桌面应用.在国内小程序是非常重要的技术平台,我们也一直思考能否把Flutter扩展 ...

  5. 解决微信小程序登录与发布的一些问题

    解决微信小程序的问题 图片在电脑上显示但在手机上却无法显示的问题 要使用的是本地图片,不想把图片上传到网络再通过https的方式解决,解决方法如下: 1.image src中的图片地址对英文字母大小写 ...

  6. 微信小程序详细图文教程-10分钟完成微信小程序开发部署发布

    很多朋友都认为微信小程序申请.部署.发布很难,需要很长时间. 实际上,微信和腾讯云同是腾讯产品,已经提供了10分钟(根据准备资源情况,已完成小程序申请认证)完成小程序开发.部署.发布的方式.当然,实现 ...

  7. 微信小程序---协同工作和发布

    (1)协同开发和发布 在中大型的公司里,人员的分工非常仔细,一般会有不同岗位角色的员工同时参与同一个小程序项目.为此,小程序平台设计了不同的权限管理使得项目管理者可以更加高效管理整个团队的协同工作. ...

  8. 使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_116 之前的一篇文章详细阐述了微信小程序开发的准备和入门以及环境搭建,这一次我们介绍如何将微信小程序如何上线,同时配合weui美化 ...

  9. 微信小程序之商品发布+编辑功能(多图片上传功能)

    小程序的商品发布页面:功能有多图片上传 遇到的问题记录一下:1.uploadFile成功之后返回的参数是json字符串,一定要用JSON.parse转换为object格式 2.因为商品发布和编辑都是在 ...

  10. SAP UI5和微信小程序对比之我见

    今天继续由SAP成都研究院著名的菜园子小哥Wang Cong,给大家分享他作为一个SAP前端人员是如何看待SAP UI5和微信小程序的异同点的. 关于Wang Cong种菜的手艺,大家请移步到他以前的 ...

随机推荐

  1. 带你了解nginx功能

    关于Nginx 简介 功能 基本的HTTP服务器功能 其他HTTP服务器功能 邮件代理服务器功能 TCP / UDP代理服务器功能 架构和可扩展性 适用平台 简介 Nginx (engine x) 是 ...

  2. mysql的执行流程

    本篇章为构建mysql在执行过程中简单的业务流程,为后续的代码优化和面试构建基础. 1.首先一条sql在执行时sql会通过网络传送给mysql 2.在Mysql收到sql语句后会先在分析器中先判断一下 ...

  3. linux不常用命令

    1.查看进程的内存资源占用 [root@abdi1 elasticsearch]# pidstat -r -p 1791 1 Linux 3.10.0-514.el7.x86_64 (abdi1) 0 ...

  4. Java创建数组、赋值的四种方式,声明+创建+初始化 详解

    @ 目录 一.创建数组的四种方式 二.详解 三.数组存储的弊端 一.创建数组的四种方式 以int数据类型为例 @Test public void testNewArray() { //创建数组 //法 ...

  5. php在大并发下redis锁实现

    在现如今电商盛行的时期,会出现很多促销活动,最为常见的就是秒杀.在秒杀系统中最为常见的问题就是会出现超卖的情况,那么如何来杜绝超卖的情形了,在业务逻辑层面可以使用缓存以及加锁的手法来避免超卖的情形. ...

  6. Sealos Devbox 使用教程:使用 Cursor 开发一个高仿苹果官网

    本教程将通过实战案例,详细介绍如何利用 Cursor 和 Devbox 开发环境,在一天内完成专业企业官网的开发和部署.适合产品经理.初级开发者或任何想要快速搭建网站的人群. 因为业务的需要,我需要开 ...

  7. 本地代理web端口

    先配置 使用ssh 通过ProxyCommand:利用跳板机让不在同一局域网的机器ssh直连 代理访问 ssh -qTfnND 127.0.0.1:$代理端口 代理机器主机名

  8. 解密prompt系列42. LLM通往动态复杂思维链之路

    最近大家都在探讨和尝试复现OpenAI O1的思考效果,解码出的关键技术方向,包括之前已经探讨过的Inference Time Scaling在推理过程中进行路径决策和选择.但想要更优的Inferen ...

  9. Linux中tar文件压缩与解压

    文件压缩与解压缩 一般什么情况下使用文件压缩? 备份数据,数据传输 节省磁盘空间 减少带宽使用 减少负载 减少IO操作 什么情况下进行压缩比较合适? 错过业务高峰期,由于文件的压缩会瞬间加大cpu的负 ...

  10. JAVA MemCache 史无前例的详细讲解!看完包精通MEMCACHE!

    Memcach什么是Memcache Memcache集群环境下缓存解决方案 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式 ...