2025-02-02 23:01:14 +08:00
|
|
|
import asyncio
|
|
|
|
|
from config.logger import setup_logging
|
|
|
|
|
from config.settings import load_config
|
|
|
|
|
from core.server import WebSocketServer
|
2025-02-15 02:01:54 +08:00
|
|
|
from core.http_server import ConfigServer
|
2025-02-02 23:01:14 +08:00
|
|
|
|
|
|
|
|
async def main():
|
|
|
|
|
setup_logging() # 最先初始化日志
|
|
|
|
|
config = load_config()
|
2025-02-15 02:01:54 +08:00
|
|
|
|
|
|
|
|
# 启动 WebSocket 服务器
|
|
|
|
|
ws_server = WebSocketServer(config)
|
|
|
|
|
ws_task = asyncio.create_task(ws_server.start())
|
|
|
|
|
|
|
|
|
|
# 启动 HTTP 配置服务器
|
|
|
|
|
http_runner = None
|
2025-02-15 12:30:20 +08:00
|
|
|
if config['manager'].get('enabled', False):
|
2025-02-15 02:01:54 +08:00
|
|
|
config_server = ConfigServer(config)
|
|
|
|
|
try:
|
|
|
|
|
http_runner = await config_server.start()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(f"Failed to start HTTP server: {e}")
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# 等待 WebSocket 服务器运行
|
|
|
|
|
await ws_task
|
|
|
|
|
finally:
|
|
|
|
|
# 清理 HTTP 服务器
|
|
|
|
|
if http_runner:
|
|
|
|
|
await http_runner.cleanup()
|
2025-02-02 23:01:14 +08:00
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
asyncio.run(main())
|