From 3d2d9e9847c035f75f2f2d4377b31a34ce5ec397 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Wed, 25 Jun 2025 13:36:24 +0000 Subject: [PATCH] Update README.md --- .../src/main/resources/readme.md | 129 +++++++++++++++--- 1 file changed, 108 insertions(+), 21 deletions(-) diff --git a/plugins/memory-session-plugin/src/main/resources/readme.md b/plugins/memory-session-plugin/src/main/resources/readme.md index 752202a0..3fcaf757 100644 --- a/plugins/memory-session-plugin/src/main/resources/readme.md +++ b/plugins/memory-session-plugin/src/main/resources/readme.md @@ -1,27 +1,114 @@ -# Memory Session Plugin -## 功能概述 -内存会话插件为MQTT broker提供基于内存的会话状态管理功能,使用ConcurrentHashMap实现线程安全的会话存储。 -## 核心实现 -- **MemorySessionStateProvider**: - - 使用ConcurrentHashMap存储会话状态(key=clientId, value=SessionState) - - 提供store/get/remove三个核心方法管理会话生命周期 - - 线程安全设计,适合高并发场景 +# Smart-MQTT -- **SessionPlugin**: - - 插件入口,初始化时注册MemorySessionStateProvider - - 遵循smartboot插件规范,实现版本和厂商信息 +## 项目介绍 -## 使用场景 -适用于需要轻量级、高性能会话管理的MQTT broker场景,特点包括: -- 内存存储,访问速度快 -- 无持久化需求 -- 单机部署环境 +Smart-MQTT 是一个基于 Java 的 MQTT 协议中间件,专为企业级物联网应用设计。它提供了一个高性能、高可靠性的消息传递解决方案,支持 MQTT 3.1/3.1.1/5.0 等多种协议版本,并通过插件化架构提供灵活的功能扩展。 -## 配置说明 -无需额外配置,引入插件后自动生效。 +项目主要特性包括: +- 完全支持 MQTT 协议规范 +- 高性能异步 I/O 处理 +- 持久化消息支持 +- 集群化部署能力 +- 安全认证机制 +- 可视化的管理界面 +- 丰富的插件生态系统 -## 版本信息 -当前版本: v1.0 -厂商: smartboot \ No newline at end of file +## 项目发展 + +项目起始于 2018 年,由 smartboot 团队开发维护,团队成员具有丰富的网络编程和物联网系统开发经验。项目从最初的基础协议支持逐步发展成一个完整的企业级物联网通信解决方案,目前在持续进化中,不断优化性能、增强功能、完善文档。 + +## 产品特色 + +### 集群支持 +- 支持分布式部署 +- 支持核心节点和工作节点的划分 +- 支持消息在集群中的分发和订阅 + +### 安全性 +- 提供身份验证和授权机制 +- 支持 SSL/TLS 加密通信 +- 支持多种加密算法(SHA、MD5 �://smartboot.org)。 + +### 管理与监控 +- 提供 REST API 接口进行系统管理 +- 支持节点状态监控 +- 支持连接、订阅、消息等运行时管理 +- 支持用户和权限管理 + +### 持久化与数据库 +- 提供 MyBatis 持久化支持 +- 支持多种数据库(H2、MySQL) +- 提供数据库连接池管理 + +### 扩展性 +- 提供插件化架构 +- 支持插件市场 +- 支持插件的热加载、卸载、安装 + +## 使用说明 + +### 集群部署 +1. 配置 `PluginConfig` 设置集群节点、端口、队列长度等 +2. 初始化 `ClusterMqttSession` 和 `ClusterController` +3. 使用 `ClusterFeature` 实现集群内节点的连接和消息分发 +4. 通过 `SseEmitter` 进行事件流处理 + +### 插件管理 +1. 使用 `PluginManagerController` 提供的 REST API 进行插件的安装、卸载、启用、禁用 +2. 通过 `PluginRepositoryController` �3. 使用 `MybatisSessionFactory` 提供的 `SqlSessionFactory` 来初始化插件所需的数据库会话 +4. `PluginConfig` 提供插件的配置信息 + +### 安全认证 +1. `SimpleAuthPlugin` 提供基本的认证支持 +2. 可以通过 `UserMapper` 和 `UserQuery` 实现用户认证 +3. 使用 `SecureUtil` 实现密码加密和验证 + +### 消息持久化 +1. 使用 `TopicStatisticsMapper`、`ConnectionMapper`、`SubscriberMapper` 等接口实现消息和订阅信息的持久化 +2. `MyBatis` 提供了 ORM 支持 +3. `MetricMapper` 可用于监控消息指标 + +### 监控与管理 +1. 通过 `ConnectionsController`、`SubscriptionController`、`SystemController` �4. 使用 `LicenseController` 进行许可证管理 +5. `BrokerController` 提供了 broker 状态的管理接口 + +### 开发环境 +- JDK 1.8+ +- Maven 3.0+ +- Git +- IDE(如 IntelliJ IDEA、Eclipse) + +## 构建与部署 + +### 构建 +1. 克隆仓库:`git clone https://gitee.com/smartboot/smart-mqtt.git` +2. 进入项目目录:`cd smart-mqtt` +3. 使用 Maven 构建:`mvn clean package` + +### 部署 +1. 配置 `plugin.yaml` 文件 +2. 使用 `install.sh` 脚本进行安装 +3. Docker 部署可通过 `docker-compose.yml` 文件 +4. GitHub Actions 提供了自动化的部署和测试流程(`.github/workflows/`) + +## 贡献者指南 + +请遵循以下步骤贡献代码: +1. Fork 仓库 +2. 创建新分支(git checkout -b my-new-feature) +3. 提交更改(git commit -am 'Add some feature') +4. 推送分支(git push origin my-new-feature) +5. 创建 Pull Request + +## 参考资料 + +- [MQTT 协议文档](https://mqtt.org) +- [SmartBoot 技术博客](https://smartboot.org) +- [GitHub 项目主页](https://github.com/smartboot/smart-mqtt) +- [Gitee 项目主页](https://gitee.com/smartboot/smart-mqtt) + +## 协议 + +Smart-MQTT 遵循 [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.html) 协议,该协议确保了所有修改和分发的项目代码都必须保持相同的许可,并且如果在服务器上使用该软件,则必须提供软件源码的访问。 \ No newline at end of file -- Gitee