message_handler.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. loop = asyncio.get_event_loop()
  11. receiveData = json.loads(receiveData)
  12. # 处理消息发送逻辑
  13. receiveData = json.loads(receiveData.get("text"))
  14. jsonType = receiveData.get("type")
  15. code = receiveData.get("code")
  16. msg = receiveData.get("msg")
  17. print("receiveData", receiveData)
  18. print("jsonType", jsonType)
  19. match jsonType:
  20. case "ping":
  21. """发送心跳"""
  22. data = manager.jsonMessage("pong")
  23. await manager.send_personal_message(data, websocket)
  24. case "pong":
  25. """发送心跳"""
  26. pass
  27. case "forward_message":
  28. data = receiveData.get("data")
  29. dictMsg = {"code":code,"msg":msg,"data":data}
  30. await manager.broadcast(dictMsg)
  31. case "connect_mcu":
  32. device_ctrl = DeviceControl(websocket_manager=manager)
  33. # if device_ctrl.serial_ins.check_connect():
  34. # print("未连接")
  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.create_task(blue_tooth.main_func(), name="blue_tooth")
  40. # loop.close()
  41. case "init_mcu":
  42. device_ctrl = DeviceControl(websocket_manager=manager)
  43. loop.create_task(device_ctrl.initDevice(), name="init_mcu")