You've already forked RadioPlayer
mirror of
https://github.com/radio95-rnt/RadioPlayer.git
synced 2026-02-26 13:52:00 +01:00
oh
This commit is contained in:
@@ -107,6 +107,11 @@ def websocket_server_process(shared_data: dict, imc_q: multiprocessing.Queue, ws
|
|||||||
# create the asyncio loop and run server
|
# create the asyncio loop and run server
|
||||||
async def runner():
|
async def runner():
|
||||||
clients = set()
|
clients = set()
|
||||||
|
stop_evt = asyncio.Event()
|
||||||
|
|
||||||
|
async def shutdown_watcher():
|
||||||
|
await loop.run_in_executor(None, shutdown_evt.wait)
|
||||||
|
stop_evt.set()
|
||||||
|
|
||||||
async def handler_wrapper(websocket: ServerConnection):
|
async def handler_wrapper(websocket: ServerConnection):
|
||||||
# register client
|
# register client
|
||||||
@@ -132,10 +137,12 @@ def websocket_server_process(shared_data: dict, imc_q: multiprocessing.Queue, ws
|
|||||||
b"WebSocket upgrade required\n"
|
b"WebSocket upgrade required\n"
|
||||||
)
|
)
|
||||||
# start server
|
# start server
|
||||||
|
watcher = asyncio.create_task(shutdown_watcher())
|
||||||
server = await websockets.serve(handler_wrapper, "0.0.0.0", 3001, server_header="RadioPlayer ws plugin", process_request=process_request)
|
server = await websockets.serve(handler_wrapper, "0.0.0.0", 3001, server_header="RadioPlayer ws plugin", process_request=process_request)
|
||||||
broadcaster = asyncio.create_task(broadcast_worker(ws_q, clients))
|
broadcaster = asyncio.create_task(broadcast_worker(ws_q, clients))
|
||||||
|
|
||||||
shutdown_evt.wait()
|
await stop_evt.wait()
|
||||||
|
watcher.cancel()
|
||||||
server.close()
|
server.close()
|
||||||
|
|
||||||
ws_q.put(None)
|
ws_q.put(None)
|
||||||
@@ -152,8 +159,6 @@ def websocket_server_process(shared_data: dict, imc_q: multiprocessing.Queue, ws
|
|||||||
except (KeyboardInterrupt, SystemExit): pass
|
except (KeyboardInterrupt, SystemExit): pass
|
||||||
finally: loop.close()
|
finally: loop.close()
|
||||||
|
|
||||||
# ---------- Module class (drop-in replacement) ----------
|
|
||||||
|
|
||||||
class Module(PlayerModule):
|
class Module(PlayerModule):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.manager = multiprocessing.Manager()
|
self.manager = multiprocessing.Manager()
|
||||||
|
|||||||
Reference in New Issue
Block a user