ws_server.py 804 B

12345678910111213141516171819202122232425
  1. import asyncio
  2. import json
  3. import websockets
  4. from logger_config import logger
  5. from data_processing import messages
  6. async def ws_inited(ws, path):
  7. logger.info("客户端已连接上,ws://localhost:6789初始化完毕")
  8. while True:
  9. message = await asyncio.get_running_loop().run_in_executor(None, messages.get)
  10. # 检查连接是否仍然开放
  11. if ws.open:
  12. message_data = json.dumps(message) # 将字典序列化为JSON字符串
  13. await ws.send(message_data)
  14. else:
  15. logger.info("WebSocket 连接已关闭")
  16. break
  17. async def start_websocket_server():
  18. server = await websockets.serve(ws_inited, "localhost", 6789)
  19. logger.info("WebSocket 服务器启动在 ws://localhost:6789")
  20. await server.wait_closed()