20 lines
499 B
Python
20 lines
499 B
Python
from __future__ import annotations
|
|
|
|
from fastapi import WebSocket, WebSocketDisconnect
|
|
|
|
from backend.services.broadcaster import Broadcaster
|
|
|
|
|
|
async def websocket_handler(ws: WebSocket, broadcaster: Broadcaster) -> None:
|
|
await ws.accept()
|
|
await broadcaster.add(ws)
|
|
try:
|
|
while True:
|
|
await ws.receive_text()
|
|
except WebSocketDisconnect:
|
|
# 客户端正常断开连接,无需打印堆栈信息
|
|
pass
|
|
finally:
|
|
await broadcaster.remove(ws)
|
|
|