#!/usr/bin/env python3
"""
WeCom Middleware 测试服务器
用于快速验证项目结构和访问地址
"""
from http.server import HTTPServer, BaseHTTPRequestHandler
import json
import time
import socket
class TestHandler(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/':
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
html = """
WeCom Middleware - 测试服务器
📋 项目状态
✅ 项目架构已创建完成
⚠️ 后端服务需要编译启动
⚠️ 前端服务需要构建启动
🔧 快速启动
# 进入项目目录
cd /root/.openclaw/workspace/wecom-middleware
# 一键启动(推荐)
./start.sh
# 或者手动启动
docker-compose up -d
📁 项目结构
wecom-middleware/
├── backend/ # Spring Boot后端
├── frontend/ # Vue前端
├── docker/ # Docker配置
├── scripts/ # 数据库脚本
├── docker-compose.yml # Docker Compose配置
├── build.sh # 构建脚本
├── start.sh # 启动脚本
└── README.md # 项目文档
📞 技术支持
如果遇到问题,请检查:
- Docker和Docker Compose是否安装
- 端口是否被占用(8080, 3000, 3306, 6379, 8081)
- 查看日志:
docker-compose logs -f
"""
self.wfile.write(html.encode())
elif self.path == '/api/system/status':
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
status = {
"success": True,
"message": "WeCom Middleware 测试服务器运行中",
"timestamp": int(time.time()),
"services": {
"backend": {
"status": "待启动",
"port": 8080,
"url": "http://localhost:8080"
},
"frontend": {
"status": "待启动",
"port": 3000,
"url": "http://localhost:3000"
},
"mysql": {
"status": "待启动",
"port": 3306
},
"redis": {
"status": "待启动",
"port": 6379
}
},
"project": {
"name": "WeCom Middleware",
"version": "1.0.0",
"description": "企业微信与OpenClaw双向通信中间件"
}
}
self.wfile.write(json.dumps(status, indent=2).encode())
elif self.path == '/api/system/health':
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
health = {
"status": "UP",
"timestamp": int(time.time()),
"components": {
"testServer": "UP",
"backend": "DOWN",
"frontend": "DOWN",
"database": "DOWN",
"cache": "DOWN"
},
"message": "测试服务器运行正常,其他服务需要启动Docker容器"
}
self.wfile.write(json.dumps(health, indent=2).encode())
else:
self.send_response(404)
self.send_header('Content-type', 'application/json')
self.end_headers()
error = {
"error": "Not Found",
"path": self.path,
"message": "请访问 / 或 /api/system/status"
}
self.wfile.write(json.dumps(error, indent=2).encode())
def do_POST(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
response = {
"success": True,
"message": "POST请求已接收",
"timestamp": int(time.time()),
"method": "POST"
}
self.wfile.write(json.dumps(response, indent=2).encode())
def log_message(self, format, *args):
# 简化日志输出
print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] {format % args}")
def get_local_ip():
"""获取本地IP地址"""
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
s.close()
return ip
except:
return "127.0.0.1"
def main():
port = 9090
local_ip = get_local_ip()
print("=" * 60)
print("🚀 WeCom Middleware 测试服务器启动中...")
print("=" * 60)
print(f"📡 本地访问: http://localhost:{port}")
print(f"🌐 网络访问: http://{local_ip}:{port}")
print("=" * 60)
print("📋 项目状态:")
print(" ✅ 完整的项目架构已创建")
print(" ✅ Docker Compose配置完成")
print(" ✅ 数据库脚本已准备")
print(" ✅ 前后端代码框架完成")
print("=" * 60)
print("🔧 启动完整服务:")
print(" 1. cd /root/.openclaw/workspace/wecom-middleware")
print(" 2. ./start.sh # 一键启动")
print(" 或")
print(" 2. docker-compose up -d")
print("=" * 60)
print("🌐 完整服务访问地址:")
print(" - 前端管理界面: http://localhost:3000")
print(" - 后端API服务: http://localhost:8080")
print(" - 数据库管理: http://localhost:8081")
print("=" * 60)
try:
server = HTTPServer(('0.0.0.0', port), TestHandler)
print(f"✅ 测试服务器已启动,按 Ctrl+C 停止")
print("=" * 60)
server.serve_forever()
except KeyboardInterrupt:
print("\n🛑 测试服务器已停止")
except Exception as e:
print(f"❌ 启动失败: {e}")
if __name__ == '__main__':
main()