| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import json
- import asyncio
- from models import *
- from .connect_manager import ConnectionManager
- def jsonMessage(code=0, msg="", data: object = None):
- """json字符串数据"""
- jsonData = {"code": code, "msg": msg, "data": data}
- return json.dumps(jsonData)
- manager = ConnectionManager()
- @app.websocket("/ws")
- async def websocket_endpoint(websocket: WebSocket):
- await manager.connect(websocket)
- try:
- while True:
- '''接收json数据'''
- data = await websocket.receive_json()
- # 处理发送消息逻辑
- await handlerSend(data,websocket)
- # await manager.broadcast(f"Client # says: {data}")
- except WebSocketDisconnect:
- data = jsonMessage(code=1,data=None,msg="socket 内部错误")
- await manager.broadcast(data,websocket)
- manager.disconnect(websocket)
- async def handlerSend(receiveData,websocket):
- # 处理消息发送逻辑
- jsonType = receiveData.get("type")
- match jsonType:
- case 'ping':
- '''发送心跳'''
- data = jsonMessage("pong")
- await manager.send_personal_message(data,websocket)
- case 'pong':
- '''发送心跳'''
- pass
|