From 11a56df2cb2575ac89bc25baa83a246021809135 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" <nick@koston.org> Date: Wed, 28 Apr 2021 05:55:18 -1000 Subject: [PATCH] Serialize websocket messages before placing them in the queue (#49582) --- homeassistant/components/websocket_api/http.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/websocket_api/http.py b/homeassistant/components/websocket_api/http.py index 27af0424f3c..a84db598fdc 100644 --- a/homeassistant/components/websocket_api/http.py +++ b/homeassistant/components/websocket_api/http.py @@ -74,11 +74,7 @@ class WebSocketHandler: if message is None: break - if not isinstance(message, str): - message = message_to_json(message) - self._logger.debug("Sending %s", message) - await self.wsock.send_str(message) # Clean up the peaker checker when we shut down the writer @@ -94,6 +90,9 @@ class WebSocketHandler: Async friendly. """ + if not isinstance(message, str): + message = message_to_json(message) + try: self._to_write.put_nowait(message) except asyncio.QueueFull: