mica-mqtt 2.3.0 发布,新的起点
共 2522字,需浏览 6分钟
·
2024-05-30 08:30
一、简介
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.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
反馈。
五、更新说明
5.1 mqtt-client stop 停止
之前有好几个朋友咨询到 client 停止的问题,在 2.3.0 中同步了下私服版的代码,将心跳线程改为了时间轮的方式。也支持了 stop,可以在更多场景中使用。
5.2 mqtt-client schedule
MqttClient client = MqttClient.create()
.ip("127.0.0.1")
.port(1883)
.username("mica")
.password("mica")
.connectSync();
// 使用 schedule 定时
client.schedule(() -> {
client.publish("/test/client", "mica最牛皮".getBytes(StandardCharsets.UTF_8));
}, 2000);
5.3 mqtt-server username 绑定
mica-mqtt 2.3.0 中改为使用 Tio.bindUser(context, username)
绑定连接 username ,如需获取连接 username 可以使用 context.getUserId()
获取。
获取 username 的连接集合 Set<ChannelContext> usernameSet = Tio.getByUserid(context.tioConfig, "username");
六、BladeX Links 预热
感谢翼神采用 mica-mqtt 作为 Bladex-Links 物联平台基石!BladeX Links 已完成了大部分功能,目前已在打磨细节阶段。有需要的老板可以提前关注哦。
评论