message_handler.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from .connect_manager import ConnectionManager
  2. from models import WebSocket
  3. import json, asyncio
  4. from mcu.DeviceControl import DeviceControl, checkMcuConnection
  5. from mcu.BlueToothMode import BlueToothMode
  6. # socket消息发送逻辑处理方法
  7. async def handlerSend(
  8. manager: ConnectionManager, receiveData: str, websocket: WebSocket
  9. ):
  10. receiveData = json.loads(receiveData)
  11. # 处理消息发送逻辑
  12. receiveData = json.loads(receiveData.get("text"))
  13. jsonType = receiveData.get("type")
  14. code = receiveData.get("code")
  15. msg = receiveData.get("msg")
  16. print("receiveData", receiveData)
  17. print("jsonType", jsonType)
  18. match jsonType:
  19. case "ping":
  20. """发送心跳"""
  21. data = manager.jsonMessage("pong")
  22. await manager.send_personal_message(data, websocket)
  23. case "pong":
  24. """发送心跳"""
  25. pass
  26. case "forward_message":
  27. data = receiveData.get("data")
  28. dictMsg = {"code":code,"msg":msg,"data":data}
  29. await manager.broadcast(dictMsg)
  30. case "connect_mcu":
  31. device_ctrl = DeviceControl(websocket_manager=manager)
  32. # if device_ctrl.serial_ins.check_connect():
  33. # print("未连接")
  34. loop = asyncio.get_event_loop()
  35. loop.create_task(checkMcuConnection(device_ctrl), name="mcu")
  36. case "connect_bluetooth":
  37. blue_tooth = BlueToothMode(websocket_manager=manager)
  38. # await blue_tooth.main_func()
  39. loop = asyncio.get_event_loop()
  40. loop.create_task(blue_tooth.main_func(), name="blue_tooth")
  41. # loop.close()