Skip to content

Commit c8f8168

Browse files
committed
fix(consumers): long log output error
1 parent 2ade806 commit c8f8168

1 file changed

Lines changed: 10 additions & 13 deletions

File tree

rootfs/api/consumers.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -113,27 +113,24 @@ async def connect(self):
113113
self.running = False
114114
self.response = None
115115
self.conneted = True
116+
self.buffer = b''
117+
self.delimiter = b"\r\n"
116118
self.pod_id = self.scope["url_route"]["kwargs"]["pod_id"]
117119

118120
def reader(self, sock):
121+
self.buffer += sock.read()
119122
try:
120-
delimiter, buffer = b"\r\n", sock.read()
121-
if delimiter in buffer:
122-
index = buffer.index(delimiter)
123-
length = int(buffer[:index], base=16)
124-
if len(buffer) - (index + len(delimiter)) < length:
125-
buffer += sock.read()
126-
while buffer and self.conneted:
127-
index = buffer.index(delimiter)
128-
length = int(buffer[:index], base=16)
123+
while self.buffer and self.buffer.endswith(self.delimiter):
124+
index = self.buffer.index(self.delimiter)
125+
length = int(self.buffer[:index], base=16)
129126
if length == 0:
130127
asyncio.create_task(self.close(code=1000))
131128
break
132-
start_pos = index + len(delimiter)
133-
end_pos = start_pos + length + len(delimiter)
129+
start_pos = index + len(self.delimiter)
130+
end_pos = start_pos + length + len(self.delimiter)
134131
asyncio.create_task(
135-
self.send(bytes_data=buffer[start_pos:end_pos].strip(delimiter)))
136-
buffer = buffer[end_pos:]
132+
self.send(bytes_data=self.buffer[start_pos:end_pos].strip(self.delimiter)))
133+
self.buffer = self.buffer[end_pos:]
137134
except BaseException:
138135
asyncio.create_task(self.close(code=1000))
139136

0 commit comments

Comments
 (0)