From a2518df3bd1627c4881e0ca19421e6b704a75ce2 Mon Sep 17 00:00:00 2001 From: Mathieu Virbel Date: Fri, 11 Aug 2023 15:18:13 +0200 Subject: [PATCH] server: fixes websocket preventing server to stop --- server/reflector/views/transcripts.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/server/reflector/views/transcripts.py b/server/reflector/views/transcripts.py index 039201ec..a6abefa6 100644 --- a/server/reflector/views/transcripts.py +++ b/server/reflector/views/transcripts.py @@ -1,11 +1,16 @@ -from fastapi import APIRouter, HTTPException, Request, WebSocket, WebSocketDisconnect +from fastapi import ( + APIRouter, + HTTPException, + Request, + WebSocket, + WebSocketDisconnect, +) from pydantic import BaseModel, Field from uuid import UUID, uuid4 from datetime import datetime from fastapi_pagination import Page, paginate from reflector.logger import logger from .rtc_offer import rtc_offer_base, RtcOffer, PipelineEvent -import asyncio from typing import Optional @@ -239,8 +244,8 @@ async def transcript_events_websocket(transcript_id: UUID, websocket: WebSocket) # endless loop to wait for new events try: while True: - await asyncio.sleep(42) - except WebSocketDisconnect: + await websocket.receive() + except (RuntimeError, WebSocketDisconnect): ws_manager.disconnect(transcript_id, websocket)