""" 反向 WebSocket 使用示例 该文件展示了如何使用反向 WebSocket 功能。 """ from core.managers import reverse_ws_manager async def example_usage(): """ 使用示例 """ # 1. 启动反向 WebSocket 服务端 await reverse_ws_manager.start(host="0.0.0.0", port=3002) # 2. 等待客户端连接 # 此时 OneBot 实现(如 NapCat)应该连接到 ws://your-server-ip:3002 # 3. 查看已连接的客户端 connected_clients = reverse_ws_manager.get_connected_clients() print(f"已连接的客户端: {connected_clients}") # 4. 查看健康的客户端 healthy_clients = reverse_ws_manager.get_healthy_clients() print(f"健康的客户端: {healthy_clients}") # 5. 调用 API(使用负载均衡) response = await reverse_ws_manager.call_api( action="get_login_info", params={}, use_load_balance=True # 启用负载均衡 ) print(f"API 响应: {response}") # 6. 调用 API(向特定客户端发送) if connected_clients: client_id = list(connected_clients.keys())[0] response = await reverse_ws_manager.call_api( action="get_login_info", params={}, client_id=client_id, use_load_balance=False # 不使用负载均衡 ) print(f"特定客户端 API 响应: {response}") # 7. 获取负载最低的客户端 least_load_client = reverse_ws_manager.get_client_with_least_load() if least_load_client: print(f"负载最低的客户端: {least_load_client}") # 8. 停止服务端 await reverse_ws_manager.stop() if __name__ == "__main__": import asyncio asyncio.run(example_usage())