关于 smart-mqtt
smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。
产品特色
国产血统:从底层通信(smart-socket)直至应用层 Broker 服务(smart-mqtt)皆为自研。
开箱即用:零配置即可启动 MQTT Broker 服务。
灵活扩展:通过插件机制,提供高度自由的定制化能力。
高能低耗:运用设计和算法技巧充分发挥硬件能力。
极致轻量:极少的外部依赖,发行包仅 3MB。
文档地址
筹备中...
开源地址
Gitee(主站):https://gitee.com/smartboot/smart-mqtt
GitHub(镜像同步):https://github.com/smartboot/smart-mqtt
环境依赖
开发环境
JDK 1.8+
Maven 3.x
IDEA
部署环境
操作系统:Linux/MacOS/Docker/K8S
Java:JRE/JDK 1.8+
smart-mqtt v0.3 本期更新
【新特性】
Retain 消息内存持久化,并在客户端 CONNECT 成功后推送匹配的消息。
新增飞行窗口(Inflight Window)功能,限制同时发送Qos1和Qos2的数量,保障通信质量。
新增 MQTT Broker 和 MQTT Client 的消息重发功能。
【优化】
重构 MQTT 消息模型设计。
改进消息内存持久化的处理逻辑。
提升并发场景下的线程安全性。
改进客户端的 subscribe 和 publish 的接口设计。
客户端正常断开连接时发送 DISCONNECT 消息。
MQTT 消息对象序列化调整为 JSON 格式。
主动拦截已断开连接的消息发送行为。
以正整数作为合法的 packetId。
补充压测的单元测试。
【Bugfix】
修复Broker端在某些异常场景下资源释放不彻底问题。
修复CONNECT消息的合法性校验错误问题:如果客户端提供的ClientId为零字节且清理会话标志为 0,服务端必须发送返回码为 0x02的CONNACK报文响应客户端的CONNECT报文。