fastbee/README.md
2026-07-18 10:18:53 +08:00

214 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FastBee 物联网平台
基于 **若依(RuoYi)v3.8.5** 框架构建的开源物联网平台,提供设备接入、数据采集、协议解析、规则引擎、告警监控、视频接入等一站式 IoT 解决方案。
## 平台简介
FastBee 是一个功能完备的企业级物联网基础平台,支持多协议设备接入、海量时序数据处理、可视化场景编排与数据展示。
- 后端采用 Spring Boot 2.5.14 + Spring Security + Redis + JWT,多模块化架构
- 前端包含三个独立应用:Vue 2 管理后台(yack-web)、Vue 3 低代码可视化(yack-view)、UniApp 移动端(yack-app)
- 设备接入支持 MQTT、TCP、CoAP、HTTP、WebSocket、SIP(GB28181)等多种协议
- 内置 MQTT Broker(Netty 实现),可选择内嵌模式或连接外部 EMQX
- 时序数据存储支持 MySQL 及 TDengine
- 通知系统支持多渠道推送(邮件、短信等)
- 内嵌 LiteFlow 规则引擎,支持 IoT 场景自动化编排
## 技术栈
### 后端
| 组件 | 技术 |
|:---|:---|
| 核心框架 | Spring Boot 2.5.14 |
| 安全框架 | Spring Security + JWT |
| ORM | MyBatis(若依框架集成) |
| 数据库连接池 | Druid |
| 缓存 | Redis(Redisson) |
| MQTT Broker | Netty 自研 / EMQX |
| 消息队列 | RocketMQ |
| 规则引擎 | LiteFlow |
| 时序数据库 | MySQL / TDengine |
| 协议服务器 | Netty |
| 代码生成器 | Velocity 模板 |
| 项目管理 | Maven(多模块) |
### 前端
| 应用 | 技术 | 用途 |
|:---|:---|:---|
| yack-web | Vue 2 + Element UI + Vuex | 管理后台 |
| yack-view | Vue 3 + TypeScript + Vite + Naive UI + Pinia | 低代码可视化设计器 |
| yack-app | UniApp + uView 2.0 | 移动端(iOS/Android/微信小程序) |
## 架构
### 数据流
```
设备 → 协议服务器(Netty,端口因协议而异)
→ iot-server-core 消息分发器
→ RocketMQ
→ fastbee-record 持久化
→ MySQL / TDengine
→ WebSocket 推送至前端
```
### 模块结构
```
fastbee-admin/ # Spring Boot 入口,Web 层
fastbee-framework/ # 安全配置、拦截器、核心框架
fastbee-common/ # 公共工具类、领域模型、注解、常量
fastbee-open-api/ # 对外 REST API
fastbee-service/
fastbee-iot-service/ # IoT 业务逻辑
fastbee-system-service/ # 系统管理(用户、角色、菜单)
fastbee-server/
base-server/ # 服务器抽象基类
iot-server-core/ # 消息分发核心
mqtt-broker/ # 内嵌 MQTT Broker
http-server/ # HTTP 设备接入(端口 8081)
tcp-server/ # TCP 服务器(端口 8888)
coap-server/ # CoAP 服务器(端口 5683)
sip-server/ # SIP/GB28181 视频监控
boot-strap/ # 服务器启动引导
fastbee-protocol/ # 协议编解码
base/ # 协议抽象层
collect/ # 数据采集协议实现
fastbee-iot-data/ # 时序数据存储(TDengine)
fastbee-mq/ # RocketMQ 集成
fastbee-notify/ # 多渠道通知
fastbee-record/ # 设备数据记录/持久化
fastbee-plugs/
generator/ # 代码生成器
quartz/ # 定时任务
ruleEngine/ # LiteFlow 规则引擎
oss/ # 对象存储(S3/阿里云 OSS)
mqtt-client/ # MQTT 客户端
oauth/ # OAuth 2.0(JustAuth)
pay/ # 支付集成
http/ # HTTP 客户端(Forest)
```
## 核心功能
- **多协议接入**:MQTT、TCP、CoAP、HTTP、WebSocket、SIP(GB28181)
- **设备管理**:注册、分组、共享、固件升级
- **产品管理**:产品定义、物模型、分类管理、授权码
- **数据采集**:Modbus 轮询、自定义协议解析
- **告警监控**:告警规则、告警历史、通知推送
- **场景编排**:LiteFlow 规则引擎、数据桥接(HTTP/MQTT/数据库)
- **时序数据**:支持 TDengine 高性能时序存储
- **视频监控**:GB28181 国标协议接入、PTZ 控制、录像回放
- **可视化**:低代码拖拽式大屏设计
- **规则引擎**:图形化场景编排,支持脚本
- **通知系统**:多渠道消息推送
- **多租户**:内置多租户数据隔离
- **代码生成**:一键生成前后端 CRUD 代码
## 快速开始
### 环境要求
- JDK 1.8+
- Maven 3.6+
- MySQL 5.7+
- Redis
- RocketMQ(可选)
- TDengine(可选)
- EMQX(可选,使用外部 MQTT Broker 时)
### 本地开发
```bash
# 1. 初始化数据库
执行 sql/yack-init.sql
# 2. 修改配置
编辑 application-dev.yml,配置 MySQL、Redis 连接信息
# 3. 启动后端
mvn clean package -DskipTests
cd fastbee-admin/target
java -jar fastbee-admin.jar --spring.profiles.active=dev
# 4. 启动管理后台(yack-web)
cd yack-web
npm install
npm run dev
# 5. 启动可视化设计器(yack-view)
cd yack-view
pnpm install
pnpm dev
# 6. 启动移动端(yack-app)
cd yack-app
npm install
# 使用 HBuilderX 打开并运行
```
### API 文档
启动服务后访问:`http://localhost:8080/swagger-ui/index.html`
### 协议端口
| 协议 | 端口 | 说明 |
|:---|:---:|:---|
| MQTT | 1883 | 未加密 TCP |
| MQTTS | 8883 | 加密 TCP |
| WS | 8083 | WebSocket |
| WSS | 8084 | 加密 WebSocket |
| HTTP 设备接入 | 8081 | HTTP 协议 |
| TCP | 8888 | TCP 协议 |
| CoAP | 5683 | CoAP 协议 |
## 部署
### Docker 部署
```bash
cd docker
docker-compose up -d
```
### 前端部署
- **yack-web**:`npm run build:prod`,产物部署至 Nginx
- **yack-view**:`pnpm build`,产物部署至 Nginx `/var/data/nginx/view/`
## 数据库
FastBee 共使用 117 张表,涵盖以下业务领域:
- 设备管理、产品管理、物模型
- 告警监控、场景编排、规则引擎
- 网关与子设备、Modbus 配置
- 固件升级、SCADA 可视化
- SIP 视频监控、OAuth 认证
- 系统管理(若依 RBAC)、通知系统
- 对象存储、代码生成、Quartz 定时任务
完整的数据库初始化脚本位于 `sql/yack-init.sql`。
## 相关项目
| 项目 | 技术栈 | 说明 |
|:---|:---|:---|
| yack-web | Vue 2 + Element UI | 管理后台 |
| yack-view | Vue 3 + Vite + Naive UI | 低代码可视化 |
| yack-app | UniApp + uView | 移动端 |
## 开源协议
本项目基于 [MIT 许可证](LICENSE) 开源。
## 致谢
- [若依(RuoYi)](https://gitee.com/y_project/RuoYi) — 提供优秀的后台开发框架
- [Element UI](https://github.com/ElemeFE/element)
- [Naive UI](https://github.com/tusen-ai/naive-ui)
- [GoView](https://github.com/dromara/GoView)