common_api_v0.py 956 B

1234567891011121314151617181920212223242526
  1. # -*- coding: utf-8 -*-
  2. from fastapi import APIRouter, WebSocket
  3. from digitalHuman.server.ws import WebsocketManager
  4. from digitalHuman.utils import logger
  5. router = APIRouter(prefix="/common/v0")
  6. wsManager = WebsocketManager()
  7. # ========================= 心跳包 ===========================
  8. @router.websocket("/heartbeat")
  9. async def websocket_heartbeat(websocket: WebSocket):
  10. try:
  11. await wsManager.connect(websocket)
  12. while True:
  13. data = await websocket.receive_text()
  14. if data == "ping":
  15. await wsManager.sendMessage("pong", websocket)
  16. else:
  17. # 暂不处理其它消息格式: 非探活则关闭接口
  18. await wsManager.sendMessage("Received unsupported message", websocket)
  19. wsManager.disconnect(websocket)
  20. except Exception as e:
  21. logger.error(f"[SERVER] websocket_heartbeat: {str(e)}")
  22. wsManager.disconnect(websocket)