一、基本介绍

MobileIMSDK-鸿蒙端是一套基于鸿蒙Next(纯血鸿蒙)系统的IM即时通讯客户端库:

  • 1)超轻量级(编译后库文件仅50KB)、无任何第3方库依赖(开箱即用);
  • 2)纯ArkTS编写、无Native代码、高度提炼、简单易用;
  • 3)基于鸿蒙Next标准WebSocket  API,简洁优雅;
  • 4)可运行于任何支持鸿蒙Next的平台;
  • 5)能与 MobileIMSDK的各种客户端完美互通;
  • 6)可应用于鸿蒙Next中的消息推送、客服聊天、企业OA、IM等场景。

二、与MobileIMSDK的关系

MobileIMSDK-鸿蒙端是基于鸿蒙Next标准WebSocketAPI的 MobileIMSDK配套客户端库。

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

MobileIMSDK是一套专为移动端开发的原创开源IM通信层框架:

  • 1)历经10年、久经考验;
  • 2)超轻量级、高度提炼,lib包50KB以内;
  • 3)精心封装,一套API同时支持UDP、TCP、WebSocket三种协议(可能是全网唯一开源的);
  • 4)客户端支持iOS、Android、标准Java、H5(暂未开源)、微信小程序(暂未开源)、Uniapp(暂未开源)、鸿蒙Next(Demo工程源码)new;
  • 5)服务端基于Netty,性能卓越、易于扩展;
  • 6)可与姊妹工程 MobileIMSDK-Web 无缝互通实现网页端聊天或推送等;
  • 7)可应用于跨设备、跨网络的聊天APP、企业OA、消息推送等各种场景。

PS:MobileIMSDK一直在持续开发和升级中,本鸿蒙客户端是MobileIMSDK工程的最新成果。

三、设计目标

直接使用鸿蒙Next的WebSocket API开撸,有以下问题和劣势:

  • 1)功能有限:没有心跳保活、断线重连、消息送达保证(重传和去重)等即时通讯关键算法和逻辑;
  • 2)API 简陋:在如此有限的API接口下,能逻辑清晰且健壮地实现并组合心跳保活、断线重连、消息送达保证等算法,需要相当高的技术掌控力;
  • 3)逻辑耦合:经验欠缺的开发人员,会将WebSocket通信逻辑与前端ArkUI界面代码混在一起,使得UI界面的编写、维护、改版都非常困难。

针对以上问题,而MobileIMSDK-鸿蒙端库将让开发者专注于UI应用层的开发,网络通信层的专业代码交由SDK开发人员,从而解偶UI前端和通信层的逻辑耦合性,大大降低技术复杂度和应用门槛。

MobileIMSDK-鸿蒙端库的设计目标是为您的开发带来以下便利:

  • 1)界面与通信解偶:UI界面与网络通信层代码解耦,UI界面的重构、维护、改版都非常容易和优雅;
  • 2)轻量级和兼容性:受益于坚持使用鸿蒙Next的标准WebSocket API,简洁轻量,无需任何额外库依赖;
  • 3)核心内聚和收敛:得益于长期的提炼和经验积累,SDK核心层高度封装,开发者无需理解复杂算法即可简单上手。
  • 4)纯 ArkTS 实现:纯ArkTS编写,无重量级框架和库依赖(更无Native代码),可干净利落地对接各种既有系统;
  • 5)跨平台运行能力:受益于鸿蒙系统的跨端特性,理论上本SDK可运行于任何支持鸿蒙Next的平台上。

四、技术亮点

  • 1)超级轻量纯净:超轻量级——纯ArkTS编写且无任何第3方库依赖,编译后库文件仅50KB;
  • 2)高内聚易使用:高度提炼——简单易用,所有核心类皆设计为单例——到手即用、高度容错;
  • 3)跨端支持好:基于鸿蒙Next的标准WebSocket API(无Native代码依赖),理论上可很好地运行于任何支持最新鸿蒙的平台上;
  • 4)断网恢复能力:拥有网络状况自动检测、断网自动治愈的能力;
  • 5)送达保证机制:完善的QoS消息送达保证机制(自动重传、消息去重、状态反馈等),不漏过每一条消息;
  • 6)通信协议封装:实现了一个对上层透明的即时通讯通信协议模型;
  • 7)身份认证机制:实现了简单合理的身份认证机制;
  • 8)完善的log信息:在开发调试阶段,确保每一个算法关键步骤都有日志输出,让您的运行调试更为便利;
  • 9)界面代码解耦:实现了UI界面代码与SDK网络通信代码解偶,防止界面代码跟IM核心代码混在一起,不利于持续升级、重用和维护;
  • 10)多端协议兼容:实现了与MobileIMSDK各种客户端完全兼容的协议模型。

五、文件组成

完整工程文件概览:

SDK代码文件用途说明:

精编注释级的源码:

六、Demo功能说明

(点击可看大图 ▲)

七、实际运行效果

1)Demo 的登陆界面运行截图(点击可看大图 ▼):

2)Demo 的主界面运行截图(点击可看大图 ▼):

3)Demo 运行的同时,可以查看详细的 log 输出(方便调试):

八、详尽开发者手册

① 开发者手册网页版):点此进入

② 开发者手册PDF精编版):点此进入 (* 推荐)

九、相关资料

[1] 鸿蒙Next官方开发资料

[2] MobileIMSDK开源框架的API文档

[3] MobileIMSDK开源IM框架源码Github地址点此

[4] MobileIMSDK-鸿蒙Next端发布公告

[5] MobileIMSDK-鸿蒙Next端开发手册* 推荐

开源轻量级IM框架MobileIMSDK的鸿蒙NEXT客户端库已发布的更多相关文章

  1. 【开源java游戏框架libgdx专题】-11-核心库-演员类

    演员类,又称为Actor类,是libgdx开发中最基本的元素,可以被继承. 演员类,从OpenGL类的角度来理解,可以称为一个二维场景节点.它本身具有位置(postion).边界矩形(类似Retang ...

  2. 【开源java游戏框架libgdx专题】-10-核心库-Viewport

    Viewport类,又称为视口类,主要负责管理游戏相机,处理游戏世界坐标与布景层坐标的换算关系.在移动端开发,不像PC端容易.因为要适配不同分辨率的设备.libgdx处理不同的设备屏幕时,用视口处理舞 ...

  3. 八款你不得不知的开源前端JS框架

    angular.js Angular.JS是一个开源的JavaScript框架,最适于开发客户端的单页面应用.它实现了前端MVC架构,专注于扩展HTML功能,提供动态数据绑定(Data Binding ...

  4. 【开源】EFW框架系列文章索引

    开源轻量级.Net框架EnterpriseFrameWork详解 ——自己动手写框架 ——适合中小企业的开发框架 ——Ajax+JqueryEasyUI+NotNetBar+MVC+WebServic ...

  5. 开源轻量级即时通讯技术 MobileIMSDK 的常见问题解答

    本帖最后由 茜茜asa 于 2015-12-14 17:50 编辑 申明:MobileIMSDK 目前为个人原创开源工程且已发布,现整理了一些有关MobileIMSDK的常见的问题,希望对需要的人有用 ...

  6. 微博轻量级RPC框架Motan正式开源:支撑千亿调用

    支撑微博千亿调用的轻量级 RPC 框架 Motan 正式开源了,项目地址为https://github.com/weibocom/motan. 微博轻量级RPC框架Motan正式开源 Motan 是微 ...

  7. 腾讯正式开源高性能超轻量级 PHP 框架 Biny

    概况 Biny是一款高性能的超轻量级PHP框架 遵循 MVC 模式,用于快速开发现代 Web 应用程序 Biny代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用 高性能,框架 ...

  8. 微博轻量级RPC框架Motan

    Motan 是微博技术团队研发的基于 Java 的轻量级 RPC 框架,已在微博内部大规模应用多年,每天稳定支撑微博上亿次的内部调用.Motan 基于微博的高并发和高负载场景优化,成为一套简单.易用. ...

  9. 轻量级ORM框架初探-Dapper与PetaPoco的基本使用

    一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...

  10. Quartz.net 开源job调度框架(一)

    Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和 ...

随机推荐

  1. 云原生周刊:Linkerd 发布 v2.14 | 2023.9.4

    开源项目推荐 Layerform Layerform 是一个 Terraform 包装器,可帮助工程师使用纯 Terraform 文件构建可重用的基础设施. 为了实现重用,Layerform 引入了层 ...

  2. 数据库系统原理——第三章 关系数据库标准语言SQL

    @ 目录 1.SQL的特点 2.SQL的组成 3SQL语句 3.1数据库的基本操作 3.2 基本表的定义.修改.删除 3.3索引的建立与删除 3.4数据更新 3.5数据查询 3.5.1单表查询 3.5 ...

  3. MyBatis-Plus条件构造器:构建安全、高效的数据库查询

    一.关于条件构造器(Wrapper) 1.1 简介 MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件.Wrapper 类允许开发者以链式调用的方式构 ...

  4. layui laydate日期时间范围,时间默认设定为23:59:59

    在Layui中,如果你想设置日期时间选择器(datetime)的默认结束时间为当天的23:59:59,你可以使用如下代码(红色部分): laydate.render({ elem: '#test10' ...

  5. Air780EP之RC522开发板,你了解吗?

    ​ 本文讲解合宙Air780EP开发板RC522实例. 本文档适用于Air780EP开发板: 关联文档和使用工具: rc522 - rc522 非接触式读写卡驱动 - LuatOS 文档: LuatO ...

  6. P4229 某位歌姬的故事

    P4229 某位歌姬的故事 处理复杂点的 dp 题. 思路 先考虑 \(n\) 比较小的情况,把每个询问放到线段上,发现每个格子只能满足覆盖最小的限制,于是考虑将询问有效区间排序考虑. 设 \(f[i ...

  7. Windows11 常用软件/环境安装记录

    Windows 编程 - The Tools I use 软件安装和管理 将软件装到统一一个地方,路径简短,不含空格和中文. WinGet 官方 Windows 软件包管理器 WinGet 在安装命令 ...

  8. 【Azure 环境】从网络包中分析出TLS加密套件信息

    问题描述 在抓取到网络包之后,如何来获取TLS信息呢?比如使用的是是么加密套件呢? 因为在应用层面,获取的错误信息非常简单: An TLS 1.2 connection request was rec ...

  9. 通过jconsole查看tomcat运行情况的配置方法——基于JDK1.5、Linux(Redhat5.5)、Tomcat6

    由于项目的原因,需要使用jconsole对tomcat进行远程监控,结合网上的资料对配置方法进行了总结. 第一步.配置tomcat 打开%TOMCAT_HOME%/bin下的文件catalina.sh ...

  10. getent使用小结

    转载请注明出处: getent 是一个用于访问系统数据库的命令,通常用于获取与网络有关的信息,比如用户.组.主机名.服务等.这个命令是 Linux 和 Unix 系统中非常有用的工具,可以用来查询多种 ...