Skip to content
This repository was archived by the owner on Feb 11, 2026. It is now read-only.

Commit 7fc7b27

Browse files
committed
Улучшена обработка ошибок при закрытии сокета и изменено логирование отправляемых сообщений для более информативного вывода.
1 parent eeb5d67 commit 7fc7b27

2 files changed

Lines changed: 11 additions & 10 deletions

File tree

src/pymax/mixins/socket.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import asyncio
22
import contextlib
3+
import json
34
import socket
45
import ssl
56
import sys
@@ -296,12 +297,16 @@ async def _parse_header(
296297
) -> bytes | None:
297298
header = await loop.run_in_executor(None, lambda: self._recv_exactly(sock=sock, n=10))
298299
if not header or len(header) < 10:
299-
self.logger.info("Socket connection closed; exiting recv loop")
300+
self.logger.error(
301+
"Socket connection closed (incomplete header: %d bytes received)",
302+
len(header) if header else 0,
303+
)
300304
self.is_connected = False
301305
try:
302306
sock.close()
303307
except Exception:
304-
return None
308+
pass
309+
raise ConnectionResetError("Socket closed while reading header")
305310

306311
return header
307312

@@ -470,10 +475,8 @@ async def _send_and_wait(
470475
self._pending[seq_key] = fut
471476
try:
472477
self.logger.debug(
473-
"Sending frame opcode=%s cmd=%s seq=%s",
474-
opcode,
475-
cmd,
476-
msg["seq"],
478+
"Sending frame msg=%s",
479+
json.dumps(msg, ensure_ascii=False, indent=4),
477480
)
478481
packet = self._pack_packet(
479482
msg["ver"],

src/pymax/mixins/websocket.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,8 @@ async def _send_and_wait(
126126

127127
try:
128128
self.logger.debug(
129-
"Sending frame opcode=%s cmd=%s seq=%s",
130-
opcode,
131-
cmd,
132-
json.dumps(msg, indent=4),
129+
"Sending frame msg=%s",
130+
json.dumps(msg, ensure_ascii=False, indent=4),
133131
)
134132
await ws.send(json.dumps(msg))
135133
data = await asyncio.wait_for(fut, timeout=timeout)

0 commit comments

Comments
 (0)