summaryrefslogtreecommitdiff
path: root/backend/decky_loader/wsrouter.py
diff options
context:
space:
mode:
authorAAGaming <aagaming@riseup.net>2024-07-03 20:08:30 -0400
committerAAGaming <aagaming@riseup.net>2024-07-03 20:08:30 -0400
commit2c4edeb810d740abfacc0dbded7626f9323ade77 (patch)
tree0f74b9ba928326df586cd1c0a8042d6fb462230e /backend/decky_loader/wsrouter.py
parentb32fa7948fbae0648fc66f1ed83bea7b35b87476 (diff)
downloaddecky-loader-2c4edeb810d740abfacc0dbded7626f9323ade77.tar.gz
decky-loader-2c4edeb810d740abfacc0dbded7626f9323ade77.zip
implement a shutdown routine instead of just waiting for all plugins to stop on their own
Diffstat (limited to 'backend/decky_loader/wsrouter.py')
-rw-r--r--backend/decky_loader/wsrouter.py6
1 files changed, 5 insertions, 1 deletions
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")