summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/decky_loader/loader.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/backend/decky_loader/loader.py b/backend/decky_loader/loader.py
index 7567912c..fa855c0a 100644
--- a/backend/decky_loader/loader.py
+++ b/backend/decky_loader/loader.py
@@ -89,6 +89,7 @@ class Loader:
self.loop.create_task(self.enable_reload_wait())
server_instance.web_app.add_routes([
+ web.get("/socket", self.handle_ws),
web.get("/frontend/{path:.*}", self.handle_frontend_assets),
web.get("/locales/{path:.*}", self.handle_frontend_locales),
web.get("/plugins", self.get_plugins),
@@ -98,6 +99,24 @@ class Loader:
web.post("/plugins/{plugin_name}/reload", self.handle_backend_reload_request)
])
+ async def handle_ws(self, request: web.Request):
+ self.logger.debug('Websocket connection starting')
+ ws = web.WebSocketResponse()
+ await ws.prepare(request)
+ self.logger.debug('Websocket connection ready')
+
+ async for msg in ws:
+ self.logger.debug(msg)
+ if msg.type == WSMsgType.TEXT:
+ self.logger.debug(msg.data)
+ if msg.data == 'close':
+ await ws.close()
+ else:
+ await ws.send_str(msg.data + '/answer')
+
+ self.logger.debug('Websocket connection closed')
+ return ws
+
async def enable_reload_wait(self):
if self.live_reload:
await sleep(10)