一、前言
百度 在省委人才工作领导小组述职会当天,恰逢省委主要领导率队外出调研,但几位述职对象都是在述职发言后再赶去参加调研。Dromara mica-mqtt 2.5.3 正式版已经发布。从 2.5.0 mica-mqtt-server 开始支持大模型 MCP,支持同时配置多协议支持,并且支持注解化编程,让开发更加方便快捷。
二、更新记录
v2.5.3 - 2025-08-04
- ? mica-mqtt-server-spring-boot-starter 支持注解
@MqttServerFunction
监听 - ? mica-mqtt-server-solon-plugin 支持注解
@MqttServerFunction
监听 - ? mica-mqtt-client-solon-plugin 更新
solon-configuration-metadata.json
- ? mica-mqtt-codec
ReasonCode
统一移动到codes
包(不影响老用户升级)
v2.5.2 - 2025-08-04
- ?? mica-mqtt-server 修复启动报错(影响范围
2.5.0
~2.5.1
),感谢CoderKK
反馈(gitee #ICOQ3Q)
v2.5.1 - 2025-08-04
- ? mica-mqtt-server 优化 sse mcp,添加 sse 心跳
- ? mica-mqtt-client 内置 ssl SNI 支持,感谢
sword007
、@TomatoLay
反馈(gitee #ICKBAY #ICEANP) - ? mica-mqtt-client 支持多网卡下指定网卡
bindIp
(网卡对应IP)和bindNetworkInterface
(网卡名) 配置(2个方法使用任意一个即可)。感谢@iovera
反馈(gitee #ICO699) - ?? mica-mqtt-client 高CPU下 packetId 生成超限,感谢
@火焰之魂
反馈(gitee #ICLXC3)
v2.5.0 - 2025-08-04
- ? mica-mqtt X AI,mica-mqtt-server 支持大模型 mcp
- ? mica-mqtt-server 支持同时配置多协议支持,拆分
http(默认端口18083)
和websocket(默认端口8083)
,使统计更加准确 - ? mica-mqtt-server spring、solon 插件删除不推荐使用的
EventMqttMessageListener
- ? mica-mqtt-server 调整保留消息的规则,支持
$retain
带存储周期的保留消息 感谢@tan90
pr #ICB9I2 #23 - ? mica-mqtt-client 删除
IMqttClientMessageIdGenerator
接口合入IMqttClientSession
接口 - ? mica-mqtt-client 默认 mqtt5.0,cleanSession 改为 cleanStart 感谢
@tan90
反馈 (gitee #IBKKAG) - ? mica-mqtt-client MqttClient 和 MqttClientTemplate 支持通过代理接口来进行Publish 感谢
@galaxy-sea
pr (github #100) - ? mica-mqtt-codec 完全同步成私服版,将 MqttProperties 内部类拆解出来,方便使用
- ? mica-mqtt client、server solon 插件添加对 Solon IDEA 插件配置提示支持。
- ? 移除 mica-mqtt-broker,未来重构
- ? 统一参数命名,userName 统一为 username。
- ? 优化部分日志,使用中文,方便大家排查问题
三、重点说明
2.5.3 mica-mqtt-server spring-boot-starter 和 solon-plugin 支持注解处理消息。
在 mica-mqtt 的 2.5.3 版本中,对 mica-mqtt-server-spring-boot-starter 和 mica-mqtt-server-solon-plugin 添加了 @MqttServerFunction
注解来处理消息,方便使用。
/**
* MqttServerFunction 注解消息监听,注意:如果自行实现了 IMqttMessageListener,MqttServerFunction 注解就不生效了。
*/
@Slf4j
@Service
public class MqttServerMessageListener {
/**
* MQTT消息处理函数,匹配 mqtt Topic /test/+,如何需要匹配所以消息,请使用通配符 #
*
* @param context ChannelContext,可选参数
* @param topic 实际接收到消息的主题名称,可选参数
* @param publishMessage 完整的MQTT发布消息对象,包含消息头和负载,可选参数
* @param message 消息负载内容,以字节数组形式提供,可选参数,也可支持对象形式,默认 json 序列化
*/
@MqttServerFunction("/test/${xxxx}")
public void func3(ChannelContext context, String topic, MqttPublishMessage publishMessage, byte[] message) {
// 获取客户端节点信息
Node clientNode = context.getClientNode();
// 记录接收到的MQTT消息信息
log.info("clientNode:{} topic:{} publishMessage:{} message:{}", clientNode, topic, publishMessage, new String(message));
}
}