Use decoupled way for backend client

This commit is contained in:
Xin Wang
2026-02-25 17:05:40 +08:00
parent 1cd2da1042
commit 08319a4cc7
15 changed files with 1203 additions and 228 deletions

View File

@@ -20,6 +20,7 @@ except ImportError:
logger.warning("aiortc not available - WebRTC endpoint will be disabled")
from app.config import settings
from app.backend_adapters import build_backend_adapter_from_settings
from core.transports import SocketTransport, WebRtcTransport, BaseTransport
from core.session import Session
from processors.tracks import Resampled16kTrack
@@ -75,6 +76,7 @@ app.add_middleware(
# Active sessions storage
active_sessions: Dict[str, Session] = {}
backend_gateway = build_backend_adapter_from_settings()
# Configure logging
logger.remove()
@@ -164,7 +166,7 @@ async def websocket_endpoint(websocket: WebSocket):
# Create transport and session
transport = SocketTransport(websocket)
session = Session(session_id, transport)
session = Session(session_id, transport, backend_gateway=backend_gateway)
active_sessions[session_id] = session
logger.info(f"WebSocket connection established: {session_id}")
@@ -243,7 +245,7 @@ async def webrtc_endpoint(websocket: WebSocket):
# Create transport and session
transport = WebRtcTransport(websocket, pc)
session = Session(session_id, transport)
session = Session(session_id, transport, backend_gateway=backend_gateway)
active_sessions[session_id] = session
logger.info(f"WebRTC connection established: {session_id}")