mica-mqtt 基于 java aio 实现的简单、低延迟、高性能 的 mqtt 物联网开源组件。 mica-mqtt 更加易于集成到已有服务和二次开发,降低自研物联网平台开发成本。
支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。
支持 websocket mqtt 子协议(支持 mqtt.js)。
支持 http rest api,http api 文档详见。
支持 MQTT client 客户端。
支持 MQTT server 服务端。
支持 MQTT 遗嘱消息。
支持 MQTT 保留消息。
支持自定义消息(mq)处理转发实现集群。
MQTT 客户端 阿里云 mqtt 连接 demo。
支持 GraalVM 编译成本机可执行程序。
支持 Spring boot 项目快速接入(mica-mqtt-spring-boot-starter)。
mica-mqtt-spring-boot-starter 支持对接 Prometheus + Grafana。
基于 redis pub/sub 实现集群,详见 mica-mqtt-broker 模块。
三、使用场景
物联网(云端 mqtt broker)
物联网(边缘端消息通信)
群组类 IM
消息推送
简单、易用的 mqtt client 客户端
四、更新记录
v2.3.4 - 2024-08-10
✨ mica-mqtt 合入
mica-mqtt-client-solon-plugin
和mica-mqtt-server-solon-plugin
感谢@peigenlpy
✨ jfinal 插件重命名为
mica-mqtt-client-jfinal-plugin
和mica-mqtt-server-jfinal-plugin
🐛 mica-mqtt-server 修复分组订阅删除,感谢
@tangjj
反馈。
v2.3.3 - 2024-07-22
✨ mica-mqtt-server 可停止,同步捐助版。
✨ mica-mqtt-server 添加 schedule 系列方法,同步捐助版。
✨ mica-mqtt 代码优化 TopicUtil 优化 getTopicFilter 方法。
✨ mica-mqtt 优化 AckTimerTask 和 retry 重发日志。gitee #IABQ7L 感谢
@tan90
反馈。✨ mica-mqtt-client-spring-boot-starter 更加方便自定义 MqttClientTemplate。
✨ mica-mqtt-client-spring-boot-starter MqttClientTemplate 暴露更多方法,方便使用。
✨ mica-mqtt-example 添加 ssl 测试代码
🐛 mica-mqtt-client 修复 ssl 服务端重启问题 gitee #IA9FFW #IAEHOD 感谢
@geekerstar
@hangrj
反馈。
v2.3.1 - 2024-06-25
✨ mica-mqtt-server 重构心跳,心跳检测模式默认为:最后接收的数据时间。gitee #I9R0SN #IA69SM 感谢
@HY
@tan90
反馈。✨ mica-mqtt-server 优化端口占用的异常提示,方便排查。
✨ mica-mqtt client 使用 mica-net 内置的心跳检测,内置心跳已重构。
✨ mica-mqtt-client 重连不管服务端是否存在 session 都发送订阅。gitee #I9VIUV 感谢
@xiaochonzi
反馈。✨ 快照版也打 source jar 方便使用。
✨ 添加 renovate bot 方便更新依赖和插件版本。
✨ 优化 issue.yml 和 github action。
v2.3.0 - 2024-05-26
✨ mica-mqtt 优化 MqttQoS 枚举,改为 MqttQoS.QOS0,方便使用(不兼容)。
✨ mica-mqtt-client 同步私服部分功能,支持 stop 完全停止。
✨ mica-mqtt-client 同步私服部分功能,MqttClient 都添加了 schedule、scheduleOnce 方法,(耗时任务,请务必自定义线程池)
✨ mica-mqtt-server 优化设备离线,简化代码。
✨ mica-mqtt-server 用户绑定使用 tio 内置 Tio.bindUser(context, username)。
🐛 mica-mqtt-client-spring-boot-starter 修复
@MqttClientSubscribe
类型错误时的异常提示。🐛 mica-mqtt-client 修复重连可能失败的问题 gitee #I9RI8E 感谢
@YYGuo
反馈。
五、重点说明
在最新的版本中 mica-mqtt-client 和 mica-mqtt-server 均可实现完全停止,可帮助开发者更好的实现插件式开发。
六、JFinal 插件使用
客户端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-client-jfinal-plugin</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-client-jfinal-plugin 使用文档
服务端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-server-jfinal-plugin</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-server-jfinal-plugin 使用文档