python Zlib从WebSocket解压缩数据

hwazgwia  于 2023-06-28  发布在  Python
关注(0)|答案(1)|浏览(233)

我正在探索WebSocket,它正在发送以zlib编码的数据,endocing的参数是zlib-stream。我想使用zlib库,但它似乎不工作。

import zlib

print(zlib.decompress(text.encode()))

返回错误zlib.error: Error -3 while decompressing data: incorrect header check。这是一个不和谐的URL wss://gateway.discord.gg/?encoding=json&v=8&compress=zlib-stream。这是一个二进制消息的示例:wp0KLShOhRZ6FibUSIWgpRPGpuCZaCNqpULQIgFLYNIGlt2UFEcGwyQVAgAAAP//

2izufjch

2izufjch1#

您需要创建解压缩对象,并从一开始就解压缩每个消息。你不能只是解压缩一个任意的消息。

decompress_obj = zlib.decompressobj()
for compressed_message in messages:
    message = decompress_obj.decompress(compressed_message)

相关问题