zip_uncompress 无法解压2MB大小的数据

  • 版本:开源版 5.8.6

传递2MB大小的数据时,无法解压原内容

发送端

接收端

传递500KB大小的数据是没问题的

接收端

经测试,unzip也不行

若是不经过压缩算法,数据传输是没问题的

看了一下代码,并没有因为 size 不一样,做特殊的处理。
都是直接调用的zlib 的标准函数。

不过可以这样排查一下:
建 2 个规则:

SELECT
  zip_compress(payload) as payload
FROM
  "t/1"

这个规则 action 是重发布到 t/2中。

SELECT
  zip_uncompress(payload) as payload
FROM
  "t/2"

这个规则 action 是控制台打印。

这样你把你的大数据(无压缩的)发到 t/1,他就会先压,再重发布到 t/2,然后打到打控制台。
看看控制台的Action Data 是不是解压出来了。不过这么大的 data 打印可能很难打全,你可以把他直接再发布一下,用一个 MQTT 客户端收到了内容再对比一下。