taskkill /F /IM nginx.exe
This commit is contained in:
@@ -78,9 +78,16 @@ sequenceDiagram
|
||||
由于SmartClaw服务在内网中,外网不能访问它,采用**WebSocket反向连接方案**:
|
||||
|
||||
1. **SmartClaw服务主动连接**:服务器B启动时,主动WebSocket连接到服务器A(wss://pactgo.cn/ws/control)
|
||||
2. **长连接保持**:维持持久WebSocket连接,支持心跳检测和断线重连
|
||||
3. **双向通信**:服务器A通过WebSocket发送任务,服务器B处理完成后回传结果
|
||||
4. **零配置**:使用Embedded-Redis(仅网关服务启动),无需独立Redis服务
|
||||
2. **单一连接**:服务器B与服务器A之间只建立一个WebSocket连接,不需要列表管理
|
||||
3. **长连接保持**:维持持久WebSocket连接,支持心跳检测和断线重连
|
||||
4. **双向通信**:服务器A通过WebSocket发送任务,服务器B处理完成后回传结果
|
||||
5. **零配置**:使用Embedded-Redis(仅网关服务启动),无需独立Redis服务
|
||||
|
||||
### 4.2.1 WebSocket连接管理
|
||||
|
||||
- **服务器B与服务器A**:只建立一个WebSocket连接,无需列表管理
|
||||
- **其他设备与服务器A**:通过WebSocket连接到服务器A的 `/ws/task` 路径,需要使用连接列表进行管理
|
||||
- **连接管理**:使用 `ConnectionManager` 结构体管理设备与服务器A的WebSocket连接,支持多用户多设备场景
|
||||
|
||||
### 4.3 SmartClaw服务与LMStudio通信
|
||||
|
||||
@@ -191,12 +198,78 @@ Claw/
|
||||
* 编写部署文档
|
||||
* 编写使用文档
|
||||
|
||||
## 8. 注意事项
|
||||
## 8. 企业微信配置详情
|
||||
|
||||
### 8.1 企业微信应用配置
|
||||
|
||||
**应用基本信息:**
|
||||
- 应用名称:智控未来
|
||||
- 应用主页: https://pactgo.cn
|
||||
- 回调地址: https://pactgo.cn/wecom
|
||||
- 使用CorpID和Secret进行认证
|
||||
|
||||
**回调地址说明:**
|
||||
- 企业微信会将用户消息和事件推送到此地址
|
||||
- 必须是HTTPS协议(企业微信强制要求)
|
||||
- 路径为 `/wecom`,对应网关服务的 `/api/v1/wecom` 路由
|
||||
- 支持GET(验证)和POST(消息推送)请求
|
||||
|
||||
### 8.2 网络通信路径
|
||||
|
||||
**完整的消息流转路径:**
|
||||
```
|
||||
用户发送消息 → 企业微信 → https://pactgo.cn/wecom → Nginx → 网关服务(/api/v1/wecom) → 处理消息
|
||||
```
|
||||
|
||||
**路径映射关系:**
|
||||
| 外部URL | Nginx Location | 代理目标 | 网关路由 | 处理函数 |
|
||||
|---------|----------------|----------|----------|----------|
|
||||
| `https://pactgo.cn/wecom` | `/wecom` | `/wecom` | `/wecom` | `handle_wechat_callback` |
|
||||
|
||||
### 8.3 消息处理流程
|
||||
|
||||
1. **URL验证(GET请求):**
|
||||
- 企业微信首次配置时会发送GET请求进行URL验证
|
||||
- 网关服务需要正确响应验证参数
|
||||
- 验证通过后企业微信才会发送实际消息
|
||||
|
||||
2. **消息推送(POST请求):**
|
||||
- 用户在企业微信应用中发送消息
|
||||
- 企业微信将消息POST到回调地址
|
||||
- 网关服务接收并处理消息
|
||||
- 返回正确响应给企业微信
|
||||
|
||||
### 8.4 路径一致性检查
|
||||
|
||||
**企业微信配置路径:**
|
||||
- 回调地址:`https://pactgo.cn/wecom`
|
||||
|
||||
**Nginx代理配置:**
|
||||
```nginx
|
||||
location /wecom {
|
||||
proxy_pass http://127.0.0.1:8000/api/v1/wecom;
|
||||
}
|
||||
```
|
||||
|
||||
**网关服务路由:**
|
||||
```rust
|
||||
.route("/wecom", web::post().to(handle_wechat_callback))
|
||||
```
|
||||
|
||||
**验证结果:** ✅ 路径完全一致
|
||||
|
||||
## 9. 注意事项
|
||||
</tool_call>
|
||||
|
||||
1. **网络通信**:
|
||||
* 服务器B在内网中,使用WebSocket反向连接方案:SmartClaw服务主动连接网关服务的WebSocket
|
||||
* 维持持久WebSocket连接,支持心跳检测和断线重连
|
||||
* 使用Embedded-Redis进行多用户多设备状态管理
|
||||
* **重要:企业微信回调地址必须保持一致**
|
||||
- 企业微信配置:`https://pactgo.cn/wecom`
|
||||
- Nginx代理:`/wecom` → `/api/v1/wecom`
|
||||
- 网关服务路由:`/wecom`
|
||||
- 确保路径完全一致,否则消息无法到达网关服务
|
||||
|
||||
2. **安全考虑**:
|
||||
* 所有通信使用HTTPS加密(企业微信强制要求)
|
||||
@@ -222,15 +295,99 @@ Claw/
|
||||
* 服务器A:Windows Server 2012系统
|
||||
* 服务器B:Windows Server 2012系统,安装LMStudio
|
||||
|
||||
## 9. 开发计划
|
||||
## 9. 部署配置详情
|
||||
|
||||
### 9.1 阶段一:基础设施搭建
|
||||
### 9.1 企业微信应用配置
|
||||
|
||||
**必须配置的参数:**
|
||||
- **应用名称**:智控未来
|
||||
- **应用主页**:https://pactgo.cn
|
||||
- **回调地址**:https://pactgo.cn/wecom
|
||||
- **CorpID**:企业微信的企业ID
|
||||
- **Secret**:应用的密钥
|
||||
- **Token**:用于签名验证
|
||||
- **EncodingAESKey**:消息加解密密钥
|
||||
|
||||
**回调地址验证:**
|
||||
- 企业微信会发送GET请求到 `https://pactgo.cn/wecom` 进行URL验证
|
||||
- 网关服务必须正确响应验证参数
|
||||
- 验证通过后才会开始推送消息
|
||||
|
||||
### 9.2 Nginx配置验证
|
||||
|
||||
**关键配置项:**
|
||||
```nginx
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name pactgo.cn;
|
||||
|
||||
# 企业微信回调 - 必须正确配置
|
||||
location /wecom {
|
||||
proxy_pass http://127.0.0.1:8000/api/v1/wecom;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# 企业微信回调特殊处理
|
||||
proxy_read_timeout 30s;
|
||||
proxy_connect_timeout 10s;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**配置检查清单:**
|
||||
- [ ] SSL证书有效且未过期
|
||||
- [ ] 443端口已开放
|
||||
- [ ] `/wecom` 路径正确代理到网关服务
|
||||
- [ ] 超时设置合理(建议30秒)
|
||||
|
||||
### 9.3 网关服务配置
|
||||
|
||||
**必须实现的路由:**
|
||||
```rust
|
||||
// 企业微信回调 - 必须匹配企业微信配置
|
||||
.route("/wecom", web::post().to(handle_wechat_callback))
|
||||
|
||||
// 其他路由
|
||||
.route("/wechat/miniprogram/callback", web::post().to(handle_wechat_miniprogram_callback))
|
||||
.route("/ws/control", web::get().to(websocket_handler))
|
||||
```
|
||||
|
||||
**处理函数要求:**
|
||||
- 必须实现GET方法用于URL验证
|
||||
- 必须实现POST方法用于消息处理
|
||||
- 必须正确验证签名
|
||||
- 必须返回正确的响应格式
|
||||
|
||||
### 9.4 路径一致性检查
|
||||
|
||||
**完整路径映射:**
|
||||
| 外部URL | Nginx Location | 代理目标 | 网关路由 | 处理函数 |
|
||||
|---------|----------------|----------|----------|----------|
|
||||
| `https://pactgo.cn/wecom` | `/wecom` | `/api/v1/wecom` | `/wecom` | `handle_wechat_callback` |
|
||||
| `https://pactgo.cn/api/v1/wechat/miniprogram/callback` | `/api/v1/wechat/miniprogram/callback` | `/api/v1/wechat/miniprogram/callback` | `/wechat/miniprogram/callback` | `handle_wechat_miniprogram_callback` |
|
||||
|
||||
**验证命令:**
|
||||
```bash
|
||||
# 测试企业微信回调地址
|
||||
curl -X GET "https://pactgo.cn/wecom?msg_signature=xxx×tamp=xxx&nonce=xxx&echostr=xxx"
|
||||
|
||||
# 测试微信小程序回调地址
|
||||
curl -X POST "https://pactgo.cn/api/v1/wechat/miniprogram/callback" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"code":"test_code"}'
|
||||
```
|
||||
|
||||
## 10. 开发计划
|
||||
|
||||
### 10.1 阶段一:基础设施搭建
|
||||
|
||||
- 配置服务器环境
|
||||
- 安装必要的软件和依赖
|
||||
- 搭建开发环境
|
||||
|
||||
### 9.2 阶段二:后端开发
|
||||
### 10.2 阶段二:后端开发
|
||||
|
||||
- 开发网关服务(服务器A)的Web服务(Embedded-Redis多用户管理)
|
||||
- 开发SmartClaw服务(服务器B)的Web服务(WebSocket客户端)
|
||||
@@ -238,19 +395,23 @@ Claw/
|
||||
- 开发智能控制核心逻辑
|
||||
- 集成LMStudio API(SSE流式响应)
|
||||
|
||||
### 9.3 阶段三:前端开发
|
||||
### 10.3 阶段三:前端开发
|
||||
|
||||
- 开发微信小程序(官方原生技术栈:WXML+WXSS+JS)
|
||||
- 配置企业微信应用(企业微信JS-SDK)
|
||||
- 应用名称:智控未来
|
||||
- 应用主页: https://pactgo.cn
|
||||
- 回调地址: https://pactgo.cn/wecom
|
||||
- 使用CorpID和Secret进行认证
|
||||
|
||||
### 9.4 阶段四:测试与部署
|
||||
### 10.4 阶段四:测试与部署
|
||||
|
||||
- 功能测试
|
||||
- 性能测试
|
||||
- 安全测试
|
||||
- 部署到生产环境
|
||||
|
||||
### 9.5 阶段五:运维与监控
|
||||
### 10.5 阶段五:运维与监控
|
||||
|
||||
- 配置监控系统
|
||||
- 制定运维计划
|
||||
|
||||
Reference in New Issue
Block a user