From 705cedbf3c4c3c2fbdffd29c6493fef0b3001898 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 2 Nov 2022 16:39:25 -0400 Subject: [PATCH] Update to websockets --- app/routers/websockets.py | 52 +++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/app/routers/websockets.py b/app/routers/websockets.py index ee04cfe..8a2feef 100644 --- a/app/routers/websockets.py +++ b/app/routers/websockets.py @@ -27,28 +27,29 @@ html = """ @@ -63,8 +64,12 @@ async def get(response: Response = Response): return HTMLResponse(html) -@router.websocket("/ws") -async def websocket_endpoint(websocket: WebSocket, response: Response = Response): +@router.websocket("/ws/{client_id}") +async def websocket_endpoint( + websocket: WebSocket, + client_id: int, + response: Response = Response, + ): log.setLevel(logging.DEBUG) log.debug(locals()) @@ -75,8 +80,9 @@ async def websocket_endpoint(websocket: WebSocket, response: Response = Response async def redis_connector( - websocket: WebSocket, redis_uri: str = "redis://localhost:6379" -): + websocket: WebSocket, + redis_url: str = "redis://localhost:6379", + ): log.setLevel(logging.DEBUG) log.debug(locals()) @@ -108,7 +114,11 @@ async def redis_connector( # TODO this needs handling better log.error(exc) - redis = await aioredis.create_pool(redis_uri) + # redis = await aioredis.create_pool(redis_url) + # Redis client bound to pool of connections (auto-reconnecting). + redis = aioredis.from_url( + redis_url, encoding="utf-8", decode_responses=True + ) consumer_task = consumer_handler(websocket, redis) producer_task = producer_handler(redis, websocket) @@ -119,5 +129,5 @@ async def redis_connector( for task in pending: log.debug(f"Canceling task: {task}") task.cancel() - redis.close() - await redis.wait_closed() + await redis.close() + # await redis.wait_closed()