mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Add websocket event stream for sim updates.
As a proof of concept this only covers the flight positions.
This commit is contained in:
21
game/server/eventstream/routes.py
Normal file
21
game/server/eventstream/routes.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from fastapi import APIRouter
|
||||
from fastapi.encoders import jsonable_encoder
|
||||
from starlette.websockets import WebSocket
|
||||
|
||||
from .eventstream import EventStream
|
||||
from .models import GameUpdateEventsJs
|
||||
from .. import GameContext
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.websocket("/eventstream")
|
||||
async def event_stream(websocket: WebSocket) -> None:
|
||||
await websocket.accept()
|
||||
while True:
|
||||
if not (events := await EventStream.get()).empty:
|
||||
await websocket.send_json(
|
||||
jsonable_encoder(
|
||||
GameUpdateEventsJs.from_events(events, GameContext.get())
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user