feat(reverse_ws): 添加反向WebSocket支持及负载均衡功能

- 新增反向WebSocket管理器模块,支持多客户端连接
- 实现负载均衡机制,自动选择健康且负载最低的客户端
- 添加防重复事件处理机制,防止消息重复处理
- 更新配置模型和加载器以支持反向WebSocket配置
- 添加示例文件和文档说明使用方法
- 修改主程序启动逻辑以支持反向WebSocket服务
This commit is contained in:
2026-02-28 20:57:48 +08:00
parent ed4da64a7a
commit 014c6c9092
10 changed files with 769 additions and 6 deletions

15
main.py
View File

@@ -15,7 +15,7 @@ from core.utils.logger import logger
# 核心模块导入
from core.ws import WS
from core.managers import plugin_manager, matcher, permission_manager
from core.managers import plugin_manager, matcher, permission_manager, reverse_ws_manager
from core.managers.redis_manager import redis_manager
from core.managers.browser_manager import browser_manager
from core.utils.executor import run_in_thread_pool, initialize_executor
@@ -142,6 +142,15 @@ async def main():
# 初始化浏览器管理器 (使用页面池)
await browser_manager.init_pool(size=3)
# 启动反向 WebSocket 服务端(如果启用)
if config.reverse_ws.enabled:
logger.info("正在启动反向 WebSocket 服务端...")
asyncio.create_task(reverse_ws_manager.start(
host=config.reverse_ws.host,
port=config.reverse_ws.port
))
logger.success(f"反向 WebSocket 服务端已启动: ws://{config.reverse_ws.host}:{config.reverse_ws.port}")
# 启动文件监控
# 监控 plugins 目录
plugin_path = os.path.join(os.path.dirname(__file__), "plugins")
@@ -186,6 +195,10 @@ async def main():
if websocket_client:
await websocket_client.close()
# 关闭反向 WebSocket 服务端
if config.reverse_ws.enabled and reverse_ws_manager.server:
await reverse_ws_manager.stop()
# 关闭浏览器管理器
await browser_manager.shutdown()