From 510168d478ed955403aadb12af5d869aac4fc792 Mon Sep 17 00:00:00 2001 From: as10896 Date: Fri, 14 Jan 2022 07:36:16 +0800 Subject: [PATCH] fix: unsubscribe properly for the websocket disconnection --- broadcaster/_base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/broadcaster/_base.py b/broadcaster/_base.py index c58cb1d..d5b095e 100644 --- a/broadcaster/_base.py +++ b/broadcaster/_base.py @@ -91,11 +91,12 @@ async def subscribe(self, channel: str) -> AsyncIterator["Subscriber"]: yield Subscriber(queue) + finally: self._subscribers[channel].remove(queue) if not self._subscribers.get(channel): del self._subscribers[channel] await self._backend.unsubscribe(channel) - finally: + await queue.put(None)