前面我们发送的大多数都是text类型的消息,对于text消息来说,后端处理出来要麻烦的多,那么我们可以不可以传递json格式的数据,对于前后端来说都比较友好,答案是肯定的,我们需要做下处理。
首先,我们在websocket管理器中增加处理json格式消息的方法:
from typing import List, Dict
from starlette.websockets import WebSocket
class ConnectionManager:
def __init__(self):
"""存放链接"""
self.active_connections: List[Dict[str, WebSocket]] = []
async def connect(self, user: str, ws: WebSocket):
"""链接"""
await ws.accept()
self.active_connections.append({"user": user, "ws": ws})
async def disconnect(self, user: str, ws: WebSocket):
"""断开链接,移除"""
self.active_connections.remove({"user": user, "ws": ws})
@staticmethod
async def send_personal_message(message: str, ws: WebSocket):
"""发送所有人消息"""
await ws.send_text(message)
async def send_other_message(self, message: dict, user: str):
"""发送个人消息"""
for coon in self.active_connections:
if coon["user"] == u

最低0.47元/天 解锁文章
172

被折叠的 条评论
为什么被折叠?



