一、前言
Dromara mica-mqtt 2.4.6 正式版已经发布,请注意从 2.4.x
版本开始将 maven groupId 迁移到了 org.dromara.mica-mqtt
,包名切换到了 org.dromara
,其它使用上均和老版本保持一致。强烈推荐 大家尽快升级到新的 2.4.x
。
另由于老的文档散落在各个模块,不方便查看,我们新增了文档站:https://mica-mqtt.dromara.org
二、更新记录
v2.4.6 - 2025-05-19
- ✨ mica-mqtt-client-spring-boot-starter MqttDeserializer 接口重写,支持泛型调用 (github #95) 感谢
@galaxy-sea
贡献 - ✨ mica-mqtt-client 批量订阅兼容 mqtt 3.1.1 部分 broker 只返回一个 reasonCode 的情况。感谢
@Jacky
反馈 - ✨ mica-mqtt-server-solon-plugin 添加对 metrics 指标的支持
- ✨ mica-mqtt-client-solon-plugin 注解订阅支持自定义序列化(默认 json 序列化)和泛型
注意:由于 2.4.5 使用了错误的 jdk 版本打包发布,导致 java 8 下运行会报错,如果有使用,请升级到 2.4.6
三、重点说明
在 mica-mqtt 的 2.4.6 版本中,mica-mqtt-server-solon-plugin
支持了指标:
mica-mqtt-client-solon-plugin
注解订阅支持消息泛型序列化,规则如下:
/**
*
* @param topic mqtt topic
* @param message mqtt 原始消息
* @param data 用户自定义的 java bean
*/
@MqttClientSubscribe(
value = "/test/json",
deserialize = MqttJsonDeserializer.class // 自定义反序列化,默认为 json 序列化
)
public void testJson(String topic, MqttPublishMessage message, User<UserData> data) {
// 支持 2 到 3 个参数,字段类型映射规则如下
// String 字符串会默认映射到 topic,
// MqttPublishMessage 会默认映射到 原始的消息,可以拿到 mqtt5 的 props 参数
// byte[] 会映射到 mqtt 消息内容 payload
// ByteBuffer 会映射到 mqtt 消息内容 payload
// 其他类型会走序列化,确保消息能够序列化,默认为 json 序列化
logger.info("topic:{} json data:{}", topic, data);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。