Skip to content

Commit dd00bca

Browse files
committed
Fix ws receive task
1 parent 140d2cb commit dd00bca

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

go2rtc_client/ws/client.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ async def close(self) -> None:
7676
self._client = None
7777
await client.close()
7878

79+
if self._rx_task:
80+
task = self._rx_task
81+
self._rx_task = None
82+
task.cancel()
83+
await task
84+
7985
@handle_error
8086
async def send(self, message: BaseMessage) -> None:
8187
"""Send a message."""
@@ -105,8 +111,8 @@ async def _receive_messages(self) -> None:
105111
if TYPE_CHECKING:
106112
assert self._client
107113

108-
try:
109-
while self.connected:
114+
while self.connected:
115+
try:
110116
msg = await self._client.receive()
111117
match msg.type:
112118
case (
@@ -123,16 +129,8 @@ async def _receive_messages(self) -> None:
123129
self._process_text_message(msg.data)
124130
case _:
125131
_LOGGER.warning("Received unknown message: %s", msg)
126-
except Exception:
127-
_LOGGER.exception("Unexpected error while receiving message")
128-
raise
129-
finally:
130-
_LOGGER.debug(
131-
"Websocket client connection from %s closed", self._server_url
132-
)
133-
134-
if self.connected:
135-
await self.close()
132+
except Exception: # pylint: disable=broad-except
133+
_LOGGER.exception("Unexpected error while receiving message")
136134

137135
def subscribe(self, callback: Callable[[BaseMessage], None]) -> Callable[[], None]:
138136
"""Subscribe to messages."""

0 commit comments

Comments
 (0)