- ✨ http api 添加
stats
、clients
列表和client详情
接口。 - ✨ MqttServer 和 MqttServerTemplate 添加
getClientInfo
getClients
系列客户端信息接口。 - ✨ MqttServer 和 MqttServerTemplate 添加
getSubscriptions
获取客户端订阅列表接口。 - ✨ MqttServer 和 MqttServerTemplate 添加
getStat
统计接口。 - 🚚 调整 maven groupId
net.dreamlu
到新的org.dromara.mica-mqtt
。 - 🚚 调整包名
net.dreamlu.iot.mqtt
到新的org.dromara.mica.mqtt
,其他均保持不变。 - 🚚 切换到 central sonatype,central sonatype 不支持快照版,mica-mqtt 不再发布快照版。
- 🐛 修复订阅发送时机问题 gitee #IB72L6 感谢
@江上烽
反馈
- ✨ mica-mqtt-server 暴露获取 clientId 和状态统计接口
- 🐛 修复订阅发送时机问题 gitee #IB72L6 感谢
@江上烽
反馈
- ✨ 调整 groupId 到 org.dromara.mica-mqtt
- 🚚 切换包名到 org.dromara
- 🚚 切换到 central sonatype, central sonatype 不支持快照版
- ✨ ssl 支持 PKCS12 证书,根据文件后缀自动判断
.jks、.keystore
识别为 JKS证书,.p12、.pfx
识别成 PKCS12证书。其他默认成JKS - ✨ 优化 Solon 版本依赖(仅编译依赖),兼容
2.8.0
和2.8.0
以上版本。
- ✨ 升级到 solon v3, 调整 solon 版本兼容
- 🐛 mica-net 心跳支持了
keepAliveBackoff
,mica-mqtt 漏改规则(影响范围:mica-mqtt server 开源版,私服版无此问题。) gitee #IAW9FC 感谢tan90
反馈。
- ✨ 优化 Mqtt server starter 添加 schedule 系列方法。
- ✨ MqttClient schedule 系列方法下层到底层,方法改造。
- ✨ mica-mqtt server 和 client 优化 stop,支持 stop 后重新配置再启动(注意:需要重新配置,因为老的线程池已经停止)。
- ✨ mica-mqtt server 和 client Spring boot starter 支持 Spring boot devtools 热启动。
- ✨
FastJsonMessageSerializer
重构为JsonMessageSerializer
。 - ✨ 添加
module-info.java
方便模块化。
- ✨ 新增
SSLEngineCustomizer
,用于自定义 tls 协议版本和加密套件。 - ✨ !20 修改了 solon 插件的默认配置数值,感谢
@peigen
pr。
- ✨ mica-mqtt 合入
mica-mqtt-client-solon-plugin
和mica-mqtt-server-solon-plugin
感谢@peigenlpy
- ✨ jfinal 插件重命名为
mica-mqtt-client-jfinal-plugin
和mica-mqtt-server-jfinal-plugin
- 🐛 mica-mqtt-server 修复分组订阅删除,感谢
@tangjj
反馈。
- ✨ mica-mqtt-server 可停止,同步捐助版。
- ✨ mica-mqtt-server 添加 schedule 系列方法,同步捐助版。
- ✨ mica-mqtt 代码优化 TopicUtil 优化 getTopicFilter 方法。
- ✨ mica-mqtt 优化 AckTimerTask 和 retry 重发日志。gitee #IABQ7L 感谢
@tan90
反馈。 - ✨ mica-mqtt-client-spring-boot-starter 更加方便自定义 MqttClientTemplate。
- ✨ mica-mqtt-client-spring-boot-starter MqttClientTemplate 暴露更多方法,方便使用。
- ✨ mica-mqtt-example 添加 ssl 测试代码
- 🐛 mica-mqtt-client 修复 ssl 服务端重启问题 gitee #IA9FFW #IAEHOD 感谢
@geekerstar
@hangrj
反馈。
- ✨ mica-mqtt-server 重构心跳,心跳检测模式默认为:最后接收的数据时间。gitee #I9R0SN #IA69SM 感谢
@HY
@tan90
反馈。 - ✨ mica-mqtt-server 优化端口占用的异常提示,方便排查。
- ✨ mica-mqtt client 使用 mica-net 内置的心跳检测,内置心跳已重构。
- ✨ mica-mqtt-client 重连不管服务端是否存在 session 都发送订阅。gitee #I9VIUV 感谢
@xiaochonzi
反馈。 - ✨ 快照版也打 source jar 方便使用。
- ✨ 添加 renovate bot 方便更新依赖和插件版本。
- ✨ 优化 issue.yml 和 github action。
- ✨ 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)
。 - 🐛 修复 @MqttClientSubscribe 类型错误时的异常提示。
- 🐛 mica-mqtt-client 修复重连可能失败的问题 gitee #I9RI8E 感谢
@YYGuo
反馈。
- ✨ mica-mqtt-codec MqttVersion 添加版本全名。
- ✨ mica-mqtt-codec MqttConnectReasonCode 添加中文说明。
- 🐛 mica-mqtt-server 保留消息下发时没有订阅也应该先存储 gitee #I9IYX1。
- 🐛 mica-mqtt-server 遗嘱消息发送判断
- ✨ mica-mqtt-client-spring-boot-starter 简化 MqttClientTemplate 构造,方便自定义。
- ✨ mica-mqtt-client-spring-boot-starter 优化 spring event mqtt client 连接监听。
- ✨ mica-mqtt-client-spring-boot-starter 优化注解订阅。
- 🐛 mqtt-client 修复 mqtt5 props 和遗嘱同时配置时连接编码问题。
- ✨ mica-mqtt-client 优化 client publish 时还没有认证的情况。
- ✨ mica-mqtt-client-spring-boot-starter 优化注解订阅,支持 clean session false 重启接收消息。
- ✨ mica-mqtt-server 拦截器 IMqttMessageInterceptor 添加 onAfterConnected 方法,方便在连接时做黑名单等功能。
- ✨ mica-mqtt-client 添加私服版客户端全局订阅功能和添加使用文档。
- 💥 mica-mqtt-common 删除弃用的 ThreadUtil。
- ✨ jfinal-mica-mqtt-client 启动改为同步连接。
- 🐛 mica-mqtt-client 修复
isConnected
判断。2.2.7
中存在此问题。 - ⬆️ 依赖升级
- ✨ mica-mqtt-server mqttws开启了ssl后,使用mqtt.js去连接,多刷新几次就会超时 gitee #I8LCMY
- ✨ mica-mqtt-example 优化 graalvm 配置,感谢 github
@litongjava
反馈
- ✨ mica-mqtt-server 添加
webConfigCustomize
支持自定义 http 和 ws 配置,可用于 gitee #I8HF7P - ✨ mica-mqtt-client 添加连接测试功能 connectTest gitee #I8J35M 感谢
@彭蕾
反馈 - ✨ mica-mqtt-example 更新 graalvm 配置
- 💩 mica-mqtt-client mqttExecutor 方法参数类型漏改。
- ✨ mqtt 业务线程池支持自定义设置为 java21虚拟线程。
- ✨ 更新 GitHub action,java17 改为 java21。
- ✨ ThreadUtil 弃用(暂时未删),切换到 mica-net 中的 ThreadUtils。
- ✨ 合并去年开源之夏的服务端共享订阅和完善(捐助VIP版采用 topic 树存储,跟 topic 数无关,百万 topic 性能依旧)。
- ✨ 优化 topic 检验
- 🐛 相同 clientId 订阅相同 匹配 topic 应该取最大的qos gitee #I7WWPN
- ✨ mqtt server http api publish 不按 clientId 进行路由(无实际意义),而是按 topic,规则改为同 emqx。
- ✨ mqtt server http api publish 触发 onMessage 消息监听。
- ⬆️ 依赖升级
- ✨ mica-mqtt-client 心跳包日志受 debug 控制
- ✨ mica-mqtt-broker 的集群改为 redis stream 实现。
- 🐛 修复 starter ssl truststorePass 配置,github #6 感谢
@zkname
反馈
- ⚡ mica-mqtt-client 共享订阅更好的兼容 emqx 高版本,gitee #I786GU
- ⬆️ 依赖升级
- ✨ MqttPublishMessage payload 参数均由
ByteBuffer
改为byte[]
,简化代码,方便使用。 - 🐛 修复 高并发场景下取消订阅时报 ConcurrentModificationException github #5 感谢
@yinyuncan
反馈
- ✨ mica-mqtt-client 支持
reconnect(String ip, int port)
转移到其他服务,订阅保留,连接成功时自动重新订阅。感谢@powerxie
反馈 - ✨ 优化
TopicUtil#getTopicFilter()
topic 占位符替换。 - ✨ 调整 mica-mqtt-client-spring-boot-starter 启动时机。
MqttClientCustomizer
支持从数据库中获取配置。感谢@powerxie
反馈 - 📝 修复迁移指南ssl配置文档错误
- 🐛 修复包长度计算错误,压测下协议解析异常 gitee #I6YOMD 感谢
@powerxie
反馈
- ✨ mica-mqtt-server http-api 不再强制依赖
fastjson
还支持Jackson
、Fastjson2
、Gson
、hutool-json
和自定义,@皮球
反馈 gitee #I6O49D。 - ✨ mica-mqtt-codec 删除
org.dromara.mica.mqtt.codec.ByteBufferUtil
,2.1.0 漏删。 - ✨ mica-mqtt-codec 兼容 qos大于0,messageId == 0,做 qos 降级处理,
@那一刹的容颜
反馈,详见 gitee #I6PFIH - ✨ mica-mqtt-codec maxClientIdLength 默认改为 64,gitee #I6P2CG
- ✨ mica-mqtt-client 优化链接时的遗嘱消息构建,默认为 qos0。
@tan90
反馈 gitee #I6BRBV - 🐛 mqtt-server 修复 mqtt.js websocket 空包问题,感谢群友反馈。
- 🐛 mqtt-server 修复 websocket mqtt 包长度判断问题。
- ⬆️ 依赖升级
- ✨ 【不兼容】调整接口参数,方便使用
- ✨ 【不兼容】底层重构调整
- ✨ 兼容更多 Spring boot 版本,支持
2.1.0.RELEASE
以上版本。 - ✨ ssl 支持双向认证 gitee #I61AHJ 感谢 @DoubleH 反馈
- 🐛 修复遗嘱消息判断 gitee #I6BRBV 感谢 @tan90 反馈。
- 🐛 修复错别字 gitee #I6F2PA 感谢 @hpz 反馈
- ⬆️ 依赖升级
- ✨ 完善 ssl 方法,方便使用。
- ⬆️ 依赖升级,避免依赖导致的 bug。
- 🐛 彻底修复解码异常:
BufferUnderflowException
。
- ✨ 优化 MqttWebServer 配置。
- ✨ mica-mqtt-example 添加华为云iot连接示例。
- ✨ mica-mqtt-example 改为使用 tinylog。
- 🐛 修复解码异常:
BufferUnderflowException
。
- ✨ mica mqtt server 完善方法,方便使用。
- ✨ 切换到自维护的 java8 t-io,注意:升级了 t-io 部分类名变更。
- ✨ mica-mqtt server 添加消息拦截器,gitee #I5KLST
- ✨ mica-mqtt client、server ack 优化和完善,可自定义 ackService。
- ✨ mica-mqtt client stater MqttClientTemplate 完善,统一调整客户端示例。
- ✨ mica-mqtt client 优化客户端心跳和心跳日志优化。
- ✨ mica-mqtt client 订阅代码优化。
- ✨ mica-mqtt codec 代码优化。
- ✨ test 代码优化,更加符合 junit5 规范。
- 🐛 mqtt client Qos2 修复。
- ✨ mica-mqtt codec 代码优化。
- ✨ mica-mqtt server 使用 Spring event 解耦消息监听。
- ✨ mica-mqtt client stater,@MqttClientSubscribe topic 支持其他变量 ${productKey} 自动替换成 +。
- 📝 添加演示地址
- 🐛 修复 mica-mqtt client 心跳发送问题。gitee #I5LQXV 感谢
@iTong
反馈。
- ✨ 添加 mica-mqtt jfinal client 和 server 插件。
- ✨ mica-mqtt server 代码优化,useQueueDecode 默认为 true。
- ✨ mica-mqtt client 监听回调代码优化。
- 📝 添加赞助,让你我走的更远!!!
- ⬆️ 依赖升级。
- ✨ mica-mqtt 统一调整最大的消息体和一次读取的字节数。
- ✨ mica-mqtt client 简化 ssl 开启。
- ✨ mica-mqtt server 添加默认的账号密码配置。
- ⬆️ 依赖升级
- ✨ mica-mqtt starter 使用 Spring event 解耦 mqtt client 断连事件。
- ✨ mica-mqtt server
IMqttConnectStatusListener#offline
方法添加reason
断开原因字段。 - ✨ 添加赞助计划。捐助共勉,让你我走的更远!!!
- 🐛 修复 http api 响应问题。
- ✨ mica-mqtt 优化线程池。
- ✨ mica-mqtt 添加 Compression 压缩接口。
- ✨ mica-mqtt 添加 kafka TimingWheel 重构 ack。
- ✨ mica-mqtt server 添加
MqttClusterMessageListener
方便集群消息处理。 - ✨ mica-mqtt client 优化客户端取消订阅逻辑,gitee #I5779A 感谢
@杨钊
同学反馈。 - ⬆️ 升级 fastjson 到 1.2.83。
- ✨ mica-mqtt topic 匹配完善。
- ✨ mica-mqtt 订阅、发布时添加 topicFilter、topicName 校验。
- ✨ mica-mqtt-broker 默认开启 http 和 basic auth。
- ✨ mica-mqtt server 添加服务端共享订阅接口,方便开源之夏学生参与。
- ✨ mica-mqtt server 添加 IMqttSessionListener。
- ✨ mica-mqtt server publish 保留消息存储。
- ✨ mica-mqtt server 统一 http 响应模型、优化 http 请求判断。
- ✨ mica-mqtt server 优化 MqttHttpRoutes,添加获取所有路由的方法。
- ✨ mica-mqtt server 完善 Result 和 http api。
- ✨ mica-mqtt server http api 添加 endpoints 列表接口。
- ✨ mica-mqtt client 添加同步连接 connectSync 方法。
- ✨ mica-mqtt client 优化 bean 依赖,减少循环依赖可能性。
- 🐛 重构 mqtt topic 匹配规则,提升性能减少内存占用,修复 gitee #I56BTC
- ⬆️ spring boot、mica 版本升级
- ✨ mica-mqtt mqtt-server 简化,默认多设备可以直接互相订阅和处理消息。
- ✨ mica-mqtt server、client 添加
tioConfigCustomize
方法,方便更大程度的自定义 TioConfig。 - ✨ 拆分 mica-mqtt-client-spring-boot-starter 和 mica-mqtt-server-spring-boot-starter gitee #I4OTC5
- ✨ mica-mqtt-client-spring-boot-example 添加重连动态更新 clientId、username、password 示例。
- ✨ mica-mqtt server 添加根据踢出指定 clientId 的 http api 接口。
- ✨ mica-mqtt server IMqttConnectStatusListener api 调整,添加用户名字段。
- ✨ mica-mqtt server IMqttMessageListener 不再强制要求实现。
- ✨ 使用 netty IntObjectHashMap 优化默认 session 存储。
- ✨ 添加 github action,用于自动构建开发阶段的 SNAPSHOT 版本。
- ✨ 示例项目拆分到 example 目录,mica-mqtt client、server starter 拆分到 starter 目录。
- ⬆️ 依赖升级.
- ✨ mica-mqtt server 添加 MQTT 客户端 keepalive 系数
keepalive-backoff
。 - ✨ mica-mqtt client、server 调整发布的日志级别为 debug。
- ✨ mica-mqtt client 优化 javadoc。
- ✨ mica-mqtt client 重连时,支持重新设置新的鉴权密码。
- ✨ mqttServer#publishAll() 日志级别调整 gitee #I4W4IS
- ✨ @MqttClientSubscribe 支持 springboot 配置 gitee #I4UOR3
- ✨ mica-mqtt client 代码优化
- ✨ mica-mqtt-spring-boot-example 拆分
- ✨ mica-mqtt server 优化连接 connect 日志。
- ✨ mica-mqtt server 代码优化。
- ✨ mica-mqtt server 添加 statEnable 配置,默认关闭,开启 Prometheus 监控,需要设置为 true。
- ✨ mica-mqtt client 添加 statEnable 配置,默认关闭。
- ✨ mica-mqtt client 优化默认线程池。
- ✨ mica-mqtt-spring-boot-starter 完善。
- ✨ mica-mqtt client 考虑一开始就没有连接上服务端的情况。
- ✨ mica-mqtt client 添加 isConnected 方法
- ✨ mica-mqtt client、server connectListener 改为异步
- ✨ mica-mqtt server ChannelContext 添加用户名,使用 (String) context.get(MqttConst.USER_NAME_KEY) 获取。
- ✨ websocket ssl 配置
- ✨ 尝试新版 graalvm
- 🐛 修复多个 mica mqtt client 消息id生成器隔离。
- ✨ mica-mqtt-client 支持
$share
、$queue
共享订阅
- ✨ mica mqtt server 调整发布权限规则。
- ✨ mica mqtt server 自定义接口的异常处理。
- ✨ mica mqtt server 放开 tio 队列配置。
- ✨ mica mqtt client publish 添加一批 byte[] payload 参数方法。
- ✨ mica-mqtt-model DefaultMessageSerializer 重构,不兼容。
- 📝 添加日志,避免遗忘。
- 🐛 http websocket 都不开启并排除 tio-websocket-server 依赖时 gitee #I4Q3CP
- 🔥 mica-mqtt-core 排除一些不需要的依赖。
- 🔥 mica-mqtt-core http websocket 都不开启时,可以排除 tio-websocket-server 依赖。
- ✨ mica-mqtt-core MqttTopicUtil 改名为 TopicUtil。
- ✨ mica-mqtt-spring-boot-starter
@MqttClientSubscribe
支持 IMqttClientMessageListener bean。 - ✨ mica-mqtt-spring-boot-starter
@MqttClientSubscribe
支持自定义 MqttClientTemplate Bean。 - ✨ mica-mqtt-spring-boot-starter 完善。
- ✨ mica-mqtt-codec 缩短 mqtt 版本 key。
- 🐛 mica-mqtt-codec 修复 will message。
- ✨ mica-mqtt-spring-boot-starter
@MqttClientSubscribe
value 改为数组,支持同时订阅多 topic。 - ✨ mica-mqtt-core 缓存 TopicFilter Pattern。
- ✨ mica-mqtt-core 优化客户端和服务端订阅逻辑
IMqttServerSubscribeValidator
接口调整。 - ✨ mica-mqtt client 添加批量订阅。
- ✨ mica-mqtt client 添加批量取消订阅。
- ✨ mica-mqtt client 添加客户端是否断开连接。
- ✨ mica-mqtt client 客户端断开重新订阅时支持配置批次大小。
- 🔖 mica-mqtt client 订阅
IMqttClientMessageListener
添加onSubscribed
默认方法。 - ⬆️ mica-mqtt-example 升级 log4j2 到 2.17.1
- ✨ mica-mqtt server 添加发布权限接口,无权限直接断开连接,避免高级别 qos 重试浪费资源。
- ✨ mica-mqtt-broker 优化节点信息存储
- ✨ mica-mqtt client 重复订阅优化。感谢
@一片小雨滴
- ✨ mica-mqtt client 抽象 IMqttClientSession 接口。
- 🐛 修复重构 AbstractMqttMessageDispatcher 保持跟 mica-mqtt-broker 逻辑一致 gitee #I4MA6A 感谢
@胡萝博
- ⬆️ mica-mqtt-example 升级 log4j2 到 2.17.0
- ✨ mica-mqtt 优化 topic 匹配。
- ✨ mica-mqtt client disconnect 不再自动重连 gitee #I4L0WK 感谢
@willianfu
。 - ✨ mica-mqtt client 添加 retryCount 配置 gitee #I4L0WK 感谢
@willianfu
。 - ✨ mica-mqtt-model message 添加 json 序列化。
- ✨ mica-mqtt-broker 重新梳理逻辑。
- 🐛 mica-mqtt-spring-boot-starter 在 boot 2.6.x 下 bean 循环依赖 gitee #I4LUZP 感谢
@hongfeng11
。 - 🐛 mica-mqtt server 同一个 clientId 踢出时清除老的 session。
- 🐛 mica-mqtt server 集群下一个 clientId 只允许连接到一台服务器。
- 🐛 mica-mqtt client 修复 IMqttClientConnectListener onDisconnect 空指针。
- 📝 mica-mqtt-model 添加 README.md
- ✨ mqtt-mqtt-core client IMqttClientConnectListener 添加 onDisconnect 方法。gitee #I4JT1D 感谢
@willianfu
同学反馈。 - ✨ mica-mqtt-core server IMqttMessageListener 接口调整,不兼容老版本。
- ✨ mica-mqtt-broker 调整上下行消息通道。
- ✨ mica-mqtt-broker 添加节点管理。
- ✨ mica-mqtt-broker 调整默认的 Message 序列化方式,不兼容老版本。
- ✨ mica-mqtt-broker 优化设备上下线,处理节点停机的情况。
- ✨ 抽取 mica-mqtt-model 模块,方便后期支持消息桥接,Message 添加默认的消息序列化。 gitee #I4ECEO
- ✨ mica-mqtt-model 完善 Message 消息模型,方便集群。
- 🐛 mica-mqtt-core MqttClient 修复 ssl 没有设置,感谢
@hjkJOJO
同学反馈。 - 🐛 修复 websocket mqtt.js 需要拆包 gitee #I4JYJX 感谢
@Symous
同学反馈。 - 📝 完善 mica-mqtt-broker README.md,添加二开说明。
- 📝 统一 mica-mqtt server ip 文档。
- 📝 更新 README.md
- ⬆️ 升级 tio 到 3.7.5.v20211028-RELEASE AioDecodeException 改为 TioDecodeException,
- ✨ 添加 uniqueId 概念,用来处理 clientId 不唯一的场景。详见:gitee #I4DXQU
- ✨ 微调
IMqttServerAuthHandler
认证,添加 uniqueId 参数。
- ✨ 状态事件接口
IMqttConnectStatusListener
添加 ChannelContext 参数。 - ✨ 从认证中拆分
IMqttServerSubscribeValidator
订阅校验接口,添加 ChannelContext、clientId 参数。 - ✨ 认证
IMqttServerAuthHandler
调整包、添加 ChannelContext 参数。 - ✨ 完善文档和示例,添加默认端口号说明。
- ⬆️ 依赖升级
- ✨ 添加 mica-mqtt-broker 模块,基于 redis pub/sub 实现 mqtt 集群。
- ✨ mica-mqtt-broker 基于 redis 实现客户端状态存储。
- ✨ mica-mqtt-broker 基于 redis 实现遗嘱、保留消息存储。
- ✨ mqtt-server http api 调整订阅和取消订阅,方便集群处理。
- ✨ mica-mqtt-spring-boot-example 添加 mqtt 和 http api 认证示例。
- ✨ 添加 mqtt 5 所有 ReasonCode。
- ✨ 优化解码 PacketNeededLength 计算。
- 🐛 修复遗嘱消息,添加消息类型。
- 🐛 修复 mqtt-server 保留消息匹配规则。
- ✨ mqtt-server 优化连接关闭日志。
- ✨ mqtt-server 优化订阅,相同 topicFilter 订阅对 qos 判断。
- ✨ mqtt-server 监听器添加 try catch,避免因业务问题导致连接断开。
- ✨ mqtt-server 优化 topicFilters 校验。
- ✨ mqtt-client 优化订阅 reasonCodes 判断。
- ✨ mqtt-client 监听器添加 try catch,避免因业务问题导致连接断开。
- ✨ mqtt-client 添加 session 有效期。
- ✨ 代码优化,减少 codacy 上的问题。
- 🐛 mqtt-server 修复心跳时间问题。
- 🐛 修复 mqtt-server 多个订阅同时匹配时消息重复的问题。
- 🐛 mqtt-client 优化连接处理的逻辑,mqtt 连接之后再订阅。
- 🐛 修复 MqttProperties 潜在的一个空指针。
- ✨ 重构,内置 http,http 和 websocket 公用端口。
- ✨ 添加 mica-core 中的 HexUtil。
- ✨ 添加 PayloadEncode 工具。
- ✨ ServerTioConfig#share 方法添加 groupStat。
- ✨ 考虑使用 udp 多播做集群。
- ✨ MqttServer、MqttServerTemplate 添加 close、getChannelContext 等方法。
- ✨ 重构 MqttServerConfiguration 简化代码。
- ✨ 配置项
mqtt.server.websocket-port
改为mqtt.server.web-port
。 - 📝 添加 JetBrains 连接。
- 🐛 修复默认的消息转发器逻辑。
- 🐛 修复 websocket 下线无法触发offline gitee #I47K13 感谢
@willianfu
同学反馈。
- ✨ 添加订阅 topicFilter 校验。
- ✨ 优化压测工具,更新压测说明,添加 tcp 连接数更改文档地址。
- ✨ mica-mqtt-example 添加多设备交互示例。
- ✨ 优化 mica-mqtt-spring-boot-example。
- ✨ 优化 deploy.sh 脚本。
- 🐛 优化解码异常处理。
- 🐛 修复心跳超时处理。
- ⬆️ 升级 spring boot 到 2.5.4
- 🐛 修复编译导致的 java8 运行期间的部分问题,NoSuchMethodError: java.nio.ByteBuffer.xxx
- ✨ mica-mqtt server 添加 websocket mqtt 子协议支持(支持 mqtt.js)。
- ✨ mica-mqtt server ip,默认为空,可不设置。
- ✨ mica-mqtt client去除 CountDownLatch 避免启动时未连接上服务端卡住。
- ✨ mica-mqtt client 添加最大包体长度字段,避免超过 8092 长度的包体导致解析异常。
- ✨ mica-mqtt client 添加连接监听 IMqttClientConnectListener。
- ✨ mica-mqtt 3.1 协议会校验 clientId 长度,添加配置项 maxClientIdLength。
- ✨ mica-mqtt 优化 mqtt 解码异常处理。
- ✨ mica-mqtt 日志优化,方便查询。
- ✨ mica-mqtt 代码优化,部分 Tio.close 改为 Tio.remove。
- ✨ mica-mqtt-spring-boot-example 添加 Dockerfile,支持
spring-boot:build-image
。 - ✨ 完善 mica-mqtt-spring-boot-starter,添加遗嘱消息配置。
- ⬆️ 升级 t-io 到 3.7.4。
- ✨ 添加 websocket mqtt 子协议支持(支持 mqtt.js)。
- ✨ mqtt 客户端去除 CountDownLatch 避免启动时未连接上服务端卡住。
- ✨ mica-mqtt 服务端 ip,默认为空,可不设置。
- ✨ 完善 mica-mqtt-spring-boot-starter,添加遗嘱消息配置。
- ✨ mqtt 3.1 协议会校验 clientId 长度,添加设置。
- ✨ mqtt 日志优化,方便查询。
- ✨ 代码优化,部分 Tio.close 改为 Tio.remove。
- ⬆️ 升级 t-io 到 3.7.4。
- 📝 文档添加集群处理步骤说明,添加遗嘱消息、保留消息的使用场景。
- ✨ 去除演示中的 qos2 参数,性能损耗大避免误用。
- ✨ 遗嘱、保留消息内部消息转发抽象。
- ✨ mqtt server 连接时先判断 clientId 是否存在连接关系,有则先关闭已有连接。
- ✨ 添加 mica-mqtt-spring-boot-example 。感谢 wsq( @冷月宫主 )pr。
- ✨ mica-mqtt-spring-boot-starter 支持客户端接入和服务端优化。感谢 wsq( @冷月宫主 )pr。
- ✨ mica-mqtt-spring-boot-starter 服务端支持指标收集。可对接
Prometheus + Grafana
监控。 - ✨ mqtt server 接受连接时,先判断该 clientId 是否存在其它连接,有则解绑并关闭其他连接。
- ⬆️ 升级 mica-auto 到 2.1.3 修复 ide 多模块增量编译问题。
- ✨ 添加 mica-mqtt-spring-boot-example 。感谢 wsq( @冷月宫主 )pr。
- ✨ mica-mqtt-spring-boot-starter 支持客户端接入和服务端优化。感谢 wsq( @冷月宫主 )pr。
- ✨ mica-mqtt-spring-boot-starter 服务端支持指标收集。可对接
Prometheus + Grafana
监控。 - ✨ mqtt server 接受连接时,先判断该 clientId 是否存在其它连接,有则解绑并关闭其他连接。
- ✨ 订阅管理集成到 session 管理中。
- ✨ MqttProperties.MqttPropertyType 添加注释,考虑 mqtt V5.0 新特性处理。
- ✨ 添加 Spring boot starter 方便接入,兼容低版本 Spring boot。
- ✨ 调研 t-io websocket 子协议。
- 🐛 修复 java8 运行期间的部分问题,NoSuchMethodError: java.nio.ByteBuffer.xxx
- ✨ 添加 Spring boot starter 方便接入。
- ✨ 调研 t-io websocket 子协议。
- ✨ 基于低延迟高性能的 t-io AIO 框架。
- ✨ 支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。
- ✨ 支持 MQTT client 客户端。
- ✨ 支持 MQTT server 服务端。
- ✨ 支持 MQTT 遗嘱消息。
- ✨ 支持 MQTT 保留消息。
- ✨ 支持自定义消息(mq)处理转发实现集群。
- ✨ 支持 GraalVM 编译成本机可执行程序。