首页 > 解决方案 > Zlib 从 websocket 解压数据

问题描述

我正在探索 websocket,它正在发送zlib以 endocing is 参数编码的数据zlib-stream。我想使用zlib图书馆,但它似乎不起作用。

import zlib

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

它给我一个错误 zlib.error: Error -3 while decompressing data: incorrect header check。这是一个不和谐的 urlwss://gateway.discord.gg/?encoding=json&v=8&compress=zlib-stream 这是一个例子 ,,binary message''wp0KLShOhRZ6FibUSIWgpRPGpuCZaCNqpULQIgFLYNIGlt2UFEcGwyQVAgAAAP//

标签: pythonwebsocketzlib

解决方案


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

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

推荐阅读