From 2c4edeb810d740abfacc0dbded7626f9323ade77 Mon Sep 17 00:00:00 2001 From: AAGaming Date: Wed, 3 Jul 2024 20:08:30 -0400 Subject: implement a shutdown routine instead of just waiting for all plugins to stop on their own --- backend/decky_loader/wsrouter.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'backend/decky_loader/wsrouter.py') diff --git a/backend/decky_loader/wsrouter.py b/backend/decky_loader/wsrouter.py index 96e61daf..b513723f 100644 --- a/backend/decky_loader/wsrouter.py +++ b/backend/decky_loader/wsrouter.py @@ -2,7 +2,7 @@ from logging import getLogger from asyncio import AbstractEventLoop, create_task -from aiohttp import WSMsgType, WSMessage +from aiohttp import WSCloseCode, WSMsgType, WSMessage from aiohttp.web import Application, WebSocketResponse, Request, Response, get from enum import IntEnum @@ -133,3 +133,7 @@ class WSRouter: async def emit(self, event: str, *args: Any): self.logger.debug(f'Firing frontend event {event} with args {args}') await self.write({ "type": MessageType.EVENT.value, "event": event, "args": args }) + + async def disconnect(self): + if self.ws: + await self.ws.close(code=WSCloseCode.GOING_AWAY, message=b"Loader is shutting down") -- cgit v1.2.3