# _*_ coding: utf-8 _*_ # @Time :2022/5/29 09:15 # @Email :508737091@qq.com # @Author :qiangyanwen # @File :sys_monitor_api.py import json import time from fastapi import APIRouter, Body, Depends, Query, WebSocket, WebSocketDisconnect from utils.mem import get_disk_info, get_sys_info, get_cpu_info, ge_mem_info from utils.websocket_manager import manager from config.log import logger router = APIRouter(prefix="/api", tags=["系统模块"]) @router.websocket("/ws") async def websocket_endpoint( websocket: WebSocket ): await manager.connect(websocket) logger.info("ws开始连接....") logger.info("websocket client ip==>{} port===>{}".format(websocket.client.host,websocket.client.port)) try: while True: data = await websocket.receive() message = {"disk_info": await get_disk_info(), "sys_info": await get_sys_info(), "cpu_info": await get_cpu_info(), "memory_info": await ge_mem_info()} await manager.send_json(message, websocket) except (WebSocketDisconnect, RuntimeError): manager.disconnect(websocket)