4.6 KiB
4.6 KiB
Claw项目 - 企业微信智控未来系统
项目背景
Claw项目是一个企业微信智控未来系统,包含两台服务器:
- 服务器A:局域网服务器,有固定IP,外网可以访问
- 服务器B:阿里云主机,在内网中,外网不能访问,安装了LMStudio
目标是使用Rust和React实现以下功能:用户通过企业微信应用"智控未来"和微信小程序进行聊天,下发任务。任务经服务器A转到服务器B,B上的自建龙虾处理后返回结果给用户。
项目结构
Claw/
├── Server/ # 后端服务
│ ├── gateway/ # 网关服务(服务器A)
│ │ ├── src/ # 源代码
│ │ ├── target/ # 编译产出
│ │ └── Cargo.toml # 项目配置
│ ├── SmartClaw/ # 智能控制服务(服务器B)
│ │ ├── src/ # 源代码
│ │ ├── target/ # 编译产出
│ │ └── Cargo.toml # 项目配置
│ └── shared/ # 共享代码
│ ├── src/ # 源代码
│ ├── target/ # 编译产出
│ └── Cargo.toml # 项目配置
├── client/ # 客户端代码
│ ├── wechat_app/ # 微信应用代码
│ │ ├── src/ # 源代码
│ │ └── dist/ # 编译产出
│ └── web/ # 网页版客户端代码(可选)
│ ├── src/ # 源代码
│ ├── dist/ # 编译产出
│ └── package.json # 项目配置
├── build/ # 构建产物
│ ├── gateway/ # 网关服务构建产物
│ ├── SmartClaw/ # 智能控制服务构建产物
│ └── client/ # 客户端构建产物
├── docs/ # 项目文档
├── scripts/ # 脚本文件
│ ├── build.sh # 构建脚本
│ ├── deploy_gateway.sh # 网关服务部署脚本
│ └── deploy_smart_claw.sh # 智能控制服务部署脚本
├── .gitignore # Git忽略文件
├── Cargo.toml # 根Rust项目配置
├── package.json # 客户端项目配置
└── README.md # 项目说明
技术栈
后端
- 语言: Rust 1.70+
- 框架: Actix Web 4.0+
- 异步运行时: Tokio 1.0+
- 序列化/反序列化: Serde 1.0+
- HTTP客户端: Reqwest 0.11+
- 缓存和消息队列: Redis 7.0+
- 数据存储: PostgreSQL 14.0+
前端
- 框架: React 18.0+
- 类型系统: TypeScript 5.0+
- 构建工具: Vite 4.0+
- 样式框架: Tailwind CSS 3.0+
- HTTP客户端: Axios 1.0+
- 开发工具: WeChat Developer Tools 最新版
开发计划
-
准备阶段:
- 创建项目基础结构
- 初始化Git仓库
- 初始化Rust和前端项目
-
后端开发:
- 开发服务器A后端(网关服务)
- 开发服务器B后端(SmartClaw服务)
- 测试服务器间通信
-
前端开发:
- 开发微信小程序
- 配置企业微信应用
-
部署与测试:
- 编写部署脚本
- 部署到服务器
- 功能测试
- 性能测试
- 安全测试
-
文档编写:
- 编写项目文档
- 编写API文档
- 编写部署文档
- 编写使用文档
开始开发
后端开发
- 进入Server目录
- 运行
cargo build构建项目 - 运行
cargo run --bin gateway启动网关服务 - 运行
cargo run --bin smartclaw启动SmartClaw服务
前端开发
- 进入client/web目录
- 运行
npm install安装依赖 - 运行
npm run dev启动开发服务器
部署
- 运行
scripts/build.sh构建项目 - 运行
scripts/deploy_gateway.sh部署网关服务 - 运行
scripts/deploy_smart_claw.sh部署SmartClaw服务
注意事项
-
网络通信:
- 服务器B在内网中,需要使用反向代理和WebSocket实现与服务器A的通信
-
安全考虑:
- 所有通信使用HTTPS加密
- 服务器A配置防火墙,只开放必要的端口
- 服务器B只允许来自服务器A的连接
- 实现认证与授权机制
-
性能考虑:
- 优化服务器间通信
- 合理使用LMStudio
- 实现异步处理,提供任务状态反馈
-
兼容性:
- 考虑Windows Server 2012的环境
- 确保代码在目标环境中能正常运行