''' 0. 消息模型 1. 消息盒子(储存消息) 2. 消息信道(收发消息) ''' from pydantic import BaseModel from datetime import datetime class Message(BaseModel): id: str # 消息ID(可基于此更新消息) type: str # 消息类型(可基于此分发消息) data: dict # 消息数据(用于展示的消息主体) date: datetime=datetime.now() # 时间(消息被创建的时间) class MessageBox: def __init__(self, sender, receiver, content): self.sender = sender self.receiver = receiver self.content = content def send(self): self.receiver.receive(self) def __str__(self): return 'From: %s' % self.sender class MessageChannel: pass #def watch(self, websocket: WebSocket, task: Task): # await websocket.accept() # # 将websocket连接加入到任务的观察者列表中 # task.add_observer(websocket) # await websocket.send_text(f"Task {task.id} is being watched") # # 从websocket连接中读取消息 # await websocket.receive_text() # # 将websocket连接从任务的观察者列表中移除 # task.remove_observer(websocket) # await websocket.send_text(f"Task {task.id} is no longer being watched") # await websocket.close()