当前位置: 欣欣网 > 码农

mica-mqtt 2.3.0 发布,新的起点

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