mica-mqtt 2.3.0 发布,新的起点

JAVA架构日记

共 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 已完成了大部分功能,目前已在打磨细节阶段。有需要的老板可以提前关注哦。


浏览 206
1点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
1点赞
评论
收藏
分享

手机扫一扫分享

举报