Skip to content

Commit 7982b6f

Browse files
marcelveldtagners
andauthored
Log non-text messages in websocket api (#530)
Co-authored-by: Stefan Agner <stefan@agner.ch>
1 parent 0bbc814 commit 7982b6f

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

matter_server/client/connection.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Logic to manage the WebSocket connection to the Matter server."""
2+
23
from __future__ import annotations
34

45
import asyncio
@@ -121,7 +122,9 @@ async def receive_message_or_raise(self) -> MessageType:
121122
raise ConnectionFailed()
122123

123124
if ws_msg.type != WSMsgType.TEXT:
124-
raise InvalidMessage(f"Received non-Text message: {ws_msg.type}")
125+
raise InvalidMessage(
126+
f"Received non-Text message: {ws_msg.type}: {ws_msg.data}"
127+
)
125128

126129
try:
127130
msg = parse_message(json_loads(ws_msg.data))

matter_server/server/client_handler.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Logic to handle a client connected over WebSockets."""
2+
23
from __future__ import annotations
34

45
import asyncio
@@ -67,7 +68,7 @@ async def disconnect(self) -> None:
6768

6869
async def handle_client(self) -> web.WebSocketResponse:
6970
"""Handle a websocket response."""
70-
# pylint: disable=too-many-branches
71+
# pylint: disable=too-many-branches,too-many-statements
7172
request = self.request
7273
wsock = self.wsock
7374
try:
@@ -91,13 +92,17 @@ async def handle_client(self) -> web.WebSocketResponse:
9192
while not wsock.closed:
9293
msg = await wsock.receive()
9394

94-
if msg.type in (WSMsgType.CLOSE, WSMsgType.CLOSING):
95+
if msg.type in (WSMsgType.CLOSED, WSMsgType.CLOSE, WSMsgType.CLOSING):
9596
break
9697

97-
if msg.type != WSMsgType.TEXT:
98-
disconnect_warn = "Received non-Text message."
98+
if msg.type == WSMsgType.ERROR:
99+
disconnect_warn = f"Received error message: {msg.data}"
99100
break
100101

102+
if msg.type != WSMsgType.TEXT:
103+
self._logger.warning("Received non-Text message: %s", msg.data)
104+
continue
105+
101106
self._logger.debug("Received: %s", msg.data)
102107

103108
try:

0 commit comments

Comments
 (0)