Files
JoyD/Claw/Server/gateway/src/log.txt

140 lines
12 KiB
Plaintext
Raw Normal View History

C:\Disk\Gateway>gateway.exe
🚀 网关服务启动中...
📍 绑定地址: 127.0.0.1:8000 (通过nginx代理)
📝 日志级别: info
🔧 版本: 0.1.0
🎯 环境: development
🌐 外部访问: https://pactgo.cn (nginx代理)
[03-23 13:08:18.414] 🚀 创建WebSocket连接池
[03-23 13:08:18.415] ⚙️ 创建默认通信配置
[03-23 13:08:18.415] 🚀 初始化任务处理服务
[03-23 13:08:18.415] 📋 WebSocket连接池已创建
[03-23 13:08:18.415] ⚙️ 通信配置已加载: "ws://localhost:8000/api/v1/ws/control"
[03-23 13:08:18.415] 🏭 创建生产环境通信配置 (心跳: 30s, 超时: 60s)
[03-23 13:08:18.415] 🚀 创建WebSocket客户端配置URL: ws://pactgo.cn/api/v1/ws/control
[2026-03-23T05:08:18Z INFO actix_server::builder] starting 2 workers
✅ 网关服务已启动在 127.0.0.1:8000 (通过nginx代理)
🔍 可用接口:
🎯 企业微信回调 - 直接匹配企业微信配置
POST /wecom - 企业微信回调(必须直接匹配企业微信配置)
📋 API接口通过 /api/v1 前缀):
GET /api/v1/health - 健康检查
GET /api/v1/system - 系统信息
POST /api/v1/task - 处理任务
GET /api/v1/task/<task_id> - 查询任务状态
GET /api/v1/tasks - 查询任务列表
POST /api/v1/wechat/miniprogram/callback - 微信小程序回调
GET /api/v1/ws/control - WebSocket控制通道
GET /api/v1/ws/task - WebSocket任务通道
POST /api/v1/test/websocket/send - WebSocket发送测试
POST /api/v1/test/websocket/send_and_wait - WebSocket发送并等待测试
GET /api/v1/test/websocket/get_manager - WebSocket管理器测试
GET /api/v1/test/websocket/connection_send - WebSocket连接发送测试
POST /api/v1/test/websocket/direct_send - WebSocket直接发送测试
POST /api/v1/test/websocket/direct_send_and_wait - WebSocket直接发送并等待测试
🌐 外部访问: https://pactgo.cn (nginx代理)
🔗 WebSocket连接: wss://pactgo.cn/api/v1/ws/control
[2026-03-23T05:08:18Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2026-03-23T05:08:18Z INFO actix_server::server] starting service: "actix-web-service-127.0.0.1:8000", workers: 2, listening on: 127.0.0.1:8000
🔄 启动WebSocket客户端连接测试...
[03-23 13:08:18.425] 🔗 正在连接到网关WebSocket: ws://pactgo.cn/api/v1/ws/control
[03-23 13:08:18.425] 🔍 验证通信配置...
[03-23 13:08:18.425] ✅ 通信配置验证通过 (URL: ws://pactgo.cn/api/v1/ws/control, 最大连接数: 100)
[03-23 13:08:18.425] ✅ WebSocket连接成功 (模拟)
✅ WebSocket客户端连接成功
[03-23 13:08:18.426] 🔗 WebSocket客户端连接状态: 已连接
🔗 WebSocket客户端已连接
[03-23 13:08:18.426] 📤 WebSocket客户端发送任务: TextProcessing (心跳: 30s, 超时: 60s)
✅ 测试任务发送成功: "任务处理成功WebSocket模拟"
[03-23 13:08:18.428] 📋 获取所有连接信息: 0个连接
[03-23 13:08:18.556] 🔗 收到WebSocket连接请求:
[03-23 13:08:18.556] HttpRequest GET HTTP/1.1:/api/v1/ws/control
[03-23 13:08:18.557] headers:
[03-23 13:08:18.557] "upgrade": "websocket"
[03-23 13:08:18.557] "x-api-key": "claw_secret_key"
[03-23 13:08:18.557] "sec-websocket-version": "13"
[03-23 13:08:18.558] "x-real-ip": "222.211.215.207"
[03-23 13:08:18.558] "connection": "upgrade"
[03-23 13:08:18.559] "host": "pactgo.cn"
[03-23 13:08:18.560] "x-forwarded-for": "222.211.215.207"
[03-23 13:08:18.560] "x-forwarded-proto": "https"
[03-23 13:08:18.560] "sec-websocket-key": "xV8B16meVWRnAZI8FHb1ig=="
[03-23 13:08:18.560] ✅ WebSocket连接认证通过
[03-23 13:08:18.560] 🎯 检测到SmartClaw服务连接 (控制通道)
[03-23 13:08:18.560] 🔗 开始WebSocket握手...
[03-23 13:08:18.560] ✅ WebSocket握手成功
[03-23 13:08:18.561] 🔌 添加新连接: 26dd6cb5-c305-421d-a8a3-753d0455b1c6
[03-23 13:08:18.561] 🔌 添加WebSocket会话: 26dd6cb5-c305-421d-a8a3-753d0455b1c6
[03-23 13:08:18.561] 🔌 创建新的WebSocket连接: id=26dd6cb5-c305-421d-a8a3-753d0455b1c6, type=SmartClaw
[03-23 13:08:18.561] 🔄 启动WebSocket消息处理循环...
[03-23 13:08:18.561] ✅ WebSocket连接已建立
[03-23 13:08:18.561] ✅ WebSocket消息处理循环已启动
[03-23 13:08:18.570] 📨 收到消息: {"service":"smartclaw","timestamp":1774242498,"type":"connect","version":"0.1.0"}
[03-23 13:08:18.570] 🔗 收到连接消息
[03-23 13:08:18.594] 📨 收到消息: {"service":"smartclaw","timestamp":1774242498,"type":"heartbeat"}
[03-23 13:08:18.594] 💓 收到心跳消息
[03-23 13:08:22.292] 📨 收到消息: {"service":"smartclaw","timestamp":1774242502,"type":"heartbeat"}
[03-23 13:08:22.293] 💓 收到心跳消息
[03-23 13:08:23.435] 🔌 断开WebSocket连接: ws://pactgo.cn/api/v1/ws/control
🔌 WebSocket客户端已断开
[03-23 13:08:37.412] 📱 收到企业微信回调
[03-23 13:08:37.412] 请求方法: POST
[03-23 13:08:37.414] 查询参数: msg_signature=d3c4aaed9b7bfdb3b7ac17119762e639bcaa3e2a&timestamp=1774242517&nonce=1774420742
[03-23 13:08:37.414] 📥 开始消息推送处理流程
[03-23 13:08:37.415] 消息内容: <xml><ToUserName><![CDATA[wwa7bb7aec981103b4]]></ToUserName><Encrypt><![CDATA[sTK12sXLTGbDIHop8a/0+8lehw6CBjCdfXBdR1DwpyFWmt8fttKjChwIzocwgWXaPDPaB68Cs7+MHVg6VINthu4bLHS/lNgKGjYYsQHe5vrdEQ2OGUBOWIQqNNX3bb0e7Ls/zBecAw7blSQNKi4akxGF1anvMVuVfv8ZspdkkongM3jXFiQ0HJJJDv68ejWRpW9iY3XR5F3FsQgYB0UbJguKtO+JuBdxlLQ30PdI0VrNtWL6XbMZN1xwXWTqxwy/A7aXFv/7nc2w/HnPJZW21/2AX0K/1MIdQpOamtZ3LaV5/tu/bSqUaSEF8n2PHN3tpmynYQKtcq0+KZWEnUXmxqvTWotLkV8f6MPlkPrQ5cEmXZ+EcV8jS4v2y9gZvhQ7IUYJ3H78eoqKm0uGlKCnRM9Ac22F961lRKuT9Y+ggsCtlKwU3eDuKLNJ2rdAQ0oO4OxcvPVguuy9c5m6CepL2g==]]></Encrypt><AgentID><![CDATA[1000002]]></AgentID></xml>
[03-23 13:08:37.415] 🔐 开始验证企业微信签名
[03-23 13:08:37.415] 🔐 验证企业微信签名:
[03-23 13:08:37.415] msg_signature: d3c4aaed9b7bfdb3b7ac17119762e639bcaa3e2a
[03-23 13:08:37.415] timestamp: 1774242517
[03-23 13:08:37.415] nonce: 1774420742
[03-23 13:08:37.415] data: sTK12sXLTGbDIHop8a/0+8lehw6CBjCdfXBdR1DwpyFWmt8fttKjChwIzocwgWXaPDPaB68Cs7+MHVg6VINthu4bLHS/lNgKGjYYsQHe5vrdEQ2OGUBOWIQqNNX3bb0e7Ls/zBecAw7blSQNKi4akxGF1anvMVuVfv8ZspdkkongM3jXFiQ0HJJJDv68ejWRpW9iY3XR5F3FsQgYB0UbJguKtO+JuBdxlLQ30PdI0VrNtWL6XbMZN1xwXWTqxwy/A7aXFv/7nc2w/HnPJZW21/2AX0K/1MIdQpOamtZ3LaV5/tu/bSqUaSEF8n2PHN3tpmynYQKtcq0+KZWEnUXmxqvTWotLkV8f6MPlkPrQ5cEmXZ+EcV8jS4v2y9gZvhQ7IUYJ3H78eoqKm0uGlKCnRM9Ac22F961lRKuT9Y+ggsCtlKwU3eDuKLNJ2rdAQ0oO4OxcvPVguuy9c5m6CepL2g==
[03-23 13:08:37.416] token: mytoken123456
[03-23 13:08:37.416] 排序后拼接字符串: 17742425171774420742mytoken123456sTK12sXLTGbDIHop8a/0+8lehw6CBjCdfXBdR1DwpyFWmt8fttKjChwIzocwgWXaPDPaB68Cs7+MHVg6VINthu4bLHS/lNgKGjYYsQHe5vrdEQ2OGUBOWIQqNNX3bb0e7Ls/zBecAw7blSQNKi4akxGF1anvMVuVfv8ZspdkkongM3jXFiQ0HJJJDv68ejWRpW9iY3XR5F3FsQgYB0UbJguKtO+JuBdxlLQ30PdI0VrNtWL6XbMZN1xwXWTqxwy/A7aXFv/7nc2w/HnPJZW21/2AX0K/1MIdQpOamtZ3LaV5/tu/bSqUaSEF8n2PHN3tpmynYQKtcq0+KZWEnUXmxqvTWotLkV8f6MPlkPrQ5cEmXZ+EcV8jS4v2y9gZvhQ7IUYJ3H78eoqKm0uGlKCnRM9Ac22F961lRKuT9Y+ggsCtlKwU3eDuKLNJ2rdAQ0oO4OxcvPVguuy9c5m6CepL2g==
[03-23 13:08:37.416] 计算签名: d3c4aaed9b7bfdb3b7ac17119762e639bcaa3e2a
[03-23 13:08:37.416] 验证结果: ✅ 通过
[03-23 13:08:37.416] ✅ 签名验证通过,开始处理消息
[03-23 13:08:37.416] 📄 开始解析企业微信XML消息
[03-23 13:08:37.417] 🔒 发现加密消息,开始解密
[03-23 13:08:37.417] 提取到加密内容
[03-23 13:08:37.417] ✅ 消息解密成功
[03-23 13:08:37.417] 解密后内容: <xml><ToUserName><![CDATA[wwa7bb7aec981103b4]]></ToUserName><FromUserName><![CDATA[ZengQingMing]]></FromUserName><CreateTime>1774242517</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[好 像通了]]></Content><MsgId>7620313586460205140</MsgId><AgentID>1000002</AgentID></xml>
[03-23 13:08:37.417] 发送者: ZengQingMing
[03-23 13:08:37.417] 消息内容: 好像通了
[03-23 13:08:37.417] 消息类型: text
[03-23 13:08:37.418] 📋 获取所有连接信息: 1个连接
[03-23 13:08:37.418] - 连接: 26dd6cb5-c305-421d-a8a3-753d0455b1c6 (连接时长: 18.8562652s)
[03-23 13:08:37.418] 📤 准备发送回复消息给用户: ZengQingMing
[03-23 13:08:37.418] ✅ 已开始发送回复消息: 思考中...
[03-23 13:08:37.418] 🔄 开始转发消息到SmartClaw
[03-23 13:08:37.418] 📤 发送消息到SmartClaw: Object {"data": Object {"content": String("好像通了"), "event": Null, "from_user_name": String("ZengQingMing"), "msg_signature": String("d3c4aaed9b7bfdb3b7ac17119762e639bcaa3e2a"), "msg_type": String("text"), "nonce": String("1774420742"), "raw_body": String("<xml><ToUserName><![CDATA[wwa7bb7aec981103b4]]></ToUserName><Encrypt><![CDATA[sTK12sXLTGbDIHop8a/0+8lehw6CBjCdfXBdR1DwpyFWmt8fttKjChwIzocwgWXaPDPaB68Cs7+MHVg6VINthu4bLHS/lNgKGjYYsQHe5vrdEQ2OGUBOWIQqNNX3bb0e7Ls/zBecAw7blSQNKi4akxGF1anvMVuVfv8ZspdkkongM3jXFiQ0HJJJDv68ejWRpW9iY3XR5F3FsQgYB0UbJguKtO+JuBdxlLQ30PdI0VrNtWL6XbMZN1xwXWTqxwy/A7aXFv/7nc2w/HnPJZW21/2AX0K/1MIdQpOamtZ3LaV5/tu/bSqUaSEF8n2PHN3tpmynYQKtcq0+KZWEnUXmxqvTWotLkV8f6MPlkPrQ5cEmXZ+EcV8jS4v2y9gZvhQ7IUYJ3H78eoqKm0uGlKCnRM9Ac22F961lRKuT9Y+ggsCtlKwU3eDuKLNJ2rdAQ0oO4OxcvPVguuy9c5m6CepL2g==]]></Encrypt><AgentID><![CDATA[1000002]]></AgentID></xml>"), "timestamp": String("1774242517")}, "type": String("wechat_message")}
[03-23 13:08:37.418] ✅ 企业微信消息处理完成,返回 success
[03-23 13:08:37.419] 📤 开始发送企业微信消息
[03-23 13:08:37.420] 📋 获取所有连接信息: 1个连接
[03-23 13:08:37.420] - 连接: 26dd6cb5-c305-421d-a8a3-753d0455b1c6 (连接时长: 18.858536s)
[03-23 13:08:37.420] 📢 WebSocket连接池广播消息到 1 个SmartClaw连接
[03-23 13:08:37.420] ✅ 发送消息到SmartClaw连接: 26dd6cb5-c305-421d-a8a3-753d0455b1c6
[03-23 13:08:37.421] ✅ 消息已成功转发到SmartClaw
[03-23 13:08:37.432] 📨 收到消息: {"data":{"content":"我收到了你的消息,正在处理...","from_user_name":"ZengQingMing","msg_type":"text","timestamp":1774242517},"type":"wechat_message_response"}
[03-23 13:08:37.438] 📱 收到SmartClaw的微信消息回复
[03-23 13:08:37.438] 回复发送者: ZengQingMing
[03-23 13:08:37.438] 回复内容: 我收到了你的消息,正在处理...
[03-23 13:08:37.438] 📤 开始发送企业微信消息
[03-23 13:08:37.756] 获取到访问令牌: mUca6bQOJQ3fPnLdoZU9__QOLXUnBU9amY9yl-y1QJCb3oumKzRhKS_poGcXkOzaA58q221dGtVGISkQANsamvXYpM-q5bCQs-ok_WpzqZwBCiBuiVkZpzyQoBxPE_OKUCLvMKQW0Rx381LOBMK8G34ngBvUodnWo9hlvosPHe48qLpunLdQJjXtekpJe0HHOaAAoWfWWJLY1G60IMPIvA
[03-23 13:08:37.811] 获取到访问令牌: mUca6bQOJQ3fPnLdoZU9__QOLXUnBU9amY9yl-y1QJCb3oumKzRhKS_poGcXkOzaA58q221dGtVGISkQANsamvXYpM-q5bCQs-ok_WpzqZwBCiBuiVkZpzyQoBxPE_OKUCLvMKQW0Rx381LOBMK8G34ngBvUodnWo9hlvosPHe48qLpunLdQJjXtekpJe0HHOaAAoWfWWJLY1G60IMPIvA
[03-23 13:08:38.187] ✅ 消息发送成功
[03-23 13:08:38.211] ✅ 消息发送成功
[03-23 13:08:38.211] ✅ 企业微信回复消息发送成功
[03-23 13:08:48.436] 📋 获取所有连接信息: 1个连接
[03-23 13:08:48.436] - 连接: 26dd6cb5-c305-421d-a8a3-753d0455b1c6 (连接时长: 29.8742601s)
🔍 测试WebSocket连接 - 发现 1 个连接
📤 准备向连接 26dd6cb5-c305-421d-a8a3-753d0455b1c6 发送测试消息
✅ 模拟发送测试消息: {"message":"连接健康检查","timestamp":1774242528,"type":"health_check"}
🧪 测试WebSocketConnection的send方法
📤 send方法测试结果: {"connection_id":"26dd6cb5-c305-421d-a8a3-753d0455b1c6","test_message":"这是send方法的测试消息","type":"test_send"}
🧪 测试WebSocketConnection的send_and_wait方法
⏱️ send_and_wait方法测试结果: {"connection_id":"26dd6cb5-c305-421d-a8a3-753d0455b1c6","request":"这是send_and_wait方法的测试请求","response":"模拟响应数据","timeout":5000,"type":"test_send_and_wait"}
[03-23 13:08:48.572] 📨 收到消息: {"service":"smartclaw","timestamp":1774242528,"type":"heartbeat"}
[03-23 13:08:48.572] 💓 收到心跳消息
[03-23 13:08:52.293] 📨 收到消息: {"service":"smartclaw","timestamp":1774242532,"type":"heartbeat"}
[03-23 13:08:52.293] 💓 收到心跳消息