python - 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//
解决方案
您需要创建解压缩对象并从一开始就解压缩每条消息。您不能只解压缩任意消息。
decompress_obj = zlib.decompressobj()
for compressed_message in messages:
message = decompress_obj.decompress(compressed_message)
推荐阅读
- list - Racket:检查列表中是否有列表
- node.js - 在 Node.js Express 中禁用 TLS 1.0 和 1.1 或仅使用 TLS 1.2 及更高版本
- javascript - React - 向下滚动页面时缩小导航图像
- java - 为我的所有 REST 控制器方法请求添加 @Around 建议后,不要返回任何 JSON 数据
- javascript - 为什么当 AST 已经知道该值时此代码返回 undefined
- mysql - MySQL ORDER BY 和 LIMIT 与存储过程中的变量
- go - 如何从 Cloud Run 访问其他 GCP 服务
- visual-studio-code - 查找并替换所有不在引号中的匹配项
- windows - 远程检索 Windows Defender 状态
- javascript - 使用 JavaScript 更新测验跟踪器答案 DIV