Skip to content

Commit 904294f

Browse files
committed
Merge branch 'fix_push' into 'master'
fix push See merge request server/openapi/openapi-python-sdk!207
2 parents 718d06a + 5623d50 commit 904294f

File tree

3 files changed

+17
-20
lines changed

3 files changed

+17
-20
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 3.1.5 (2024-01-19)
2+
### Fix
3+
- 修复长链接 protobuf 消息帧生成问题导致的无法连接问题
4+
15
# 3.1.4 (2024-01-19)
26
### Modify
37
- 优化http请求,复用连接

tigeropen/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
55
@author: gaoan
66
"""
7-
__VERSION__ = '3.1.4'
7+
__VERSION__ = '3.1.5'

tigeropen/push/network/transport.py

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,22 @@ class SSLError(object):
5252
PARSING_MSG = 1
5353

5454

55-
def EncodeVarint(msg):
56-
value = len(msg)
55+
def encode_frame(packed_frame):
56+
value = len(packed_frame)
57+
header_array = []
58+
5759
bits = value & 0x7f
5860
value >>= 7
59-
header_array = []
6061
while value:
61-
header_array.append(0x80 | bits)
62+
header_array.append(struct.Struct(">B").pack((0x80 | bits)))
6263
bits = value & 0x7f
6364
value >>= 7
64-
header_array.append(bits)
65-
re = bytes(header_array)
66-
return re
65+
66+
header_array.append(struct.Struct(">B").pack(bits))
67+
return b"".join(header_array) + packed_frame
6768

6869

69-
def DecodeVarint(buffer):
70+
def decode_varint(buffer):
7071
mask = (1 << 32) - 1
7172
result_type = int
7273
result = 0
@@ -246,16 +247,8 @@ def transmit(self, frame):
246247

247248
packed_frame = frame.SerializeToString()
248249
logging.debug("sending frame: %s", MessageToJson(frame))
249-
value = len(packed_frame)
250-
bits = value & 0x7f
251-
value >>= 7
252-
while value:
253-
self.send(struct.Struct(">B").pack((0x80 | bits)))
254-
bits = value & 0x7f
255-
value >>= 7
256-
257-
self.send(struct.Struct(">B").pack(bits))
258-
self.send(packed_frame)
250+
encoded_frame = encode_frame(packed_frame)
251+
self.send(encoded_frame)
259252

260253
def send(self, encoded_frame):
261254
"""
@@ -374,7 +367,7 @@ def __read(self):
374367
if self.__parse_status == PARSING_LEN:
375368
self.__frame_buffer += struct.Struct(">B").pack(b)
376369
if not (b & 0x80):
377-
self.__frame_len = DecodeVarint(self.__frame_buffer)
370+
self.__frame_len = decode_varint(self.__frame_buffer)
378371
self.__parse_status = PARSING_MSG
379372
self.__frame_buffer = b""
380373
continue

0 commit comments

Comments
 (0)