清泛IT社区

标题: 怎么通过app inventor接收mqtt平台推送的长消息 [打印本页]

作者: 13582001974    时间: 2024-09-29 19:54
标题: 怎么通过app inventor接收mqtt平台推送的长消息
我使用的MQTT平台是mind+的siot平台,发布的消息是图片的BASE64编码
作者: 13582001974    时间: 2024-09-29 19:58
(, 下载次数: 46)

作者: App Inventor 2     时间: 2024-09-29 19:59
你好,mqtt接收长消息目前是有什么问题吗?请提供详细的问题截图或报错信息。

接收的base64编码的图片,可以是使用拓展解码还原成图片:https://www.fun123.cn/reference/ ... A%E5%AA%92%E4%BD%93
作者: 13582001974    时间: 2024-09-29 20:06
我想制作一个门禁系统,把摄像头采集的图片通过MQTT平台发送给app inventor

作者: 13582001974    时间: 2024-09-29 20:08
我的手机现在可以接收到短消息,这个BASE64编码数据直接接收不到,一点反应也没有。
作者: App Inventor 2     时间: 2024-09-29 20:18
13582001974 发表于 2024-09-29 20:08
我的手机现在可以接收到短消息,这个BASE64编码数据直接接收不到,一点反应也没有。 ...

请提供一下项目编号 id,我看一下代码。后面也会测试一下 base64 图片的传输看看。
作者: 13582001974    时间: 2024-09-29 20:21
https://www.fun123.cn/#4768650649141248
这是项目编号id吗?
作者: App Inventor 2     时间: 2024-09-29 20:52
13582001974 发表于 2024-09-29 20:21
https://www.fun123.cn/#4768650649141248
这是项目编号id吗?

是的,我研究一下给你回复哈
作者: App Inventor 2     时间: 2024-10-01 20:21
这是因为图片base64文本前缀的问题:

一般base64工具或在线base64图片的话,前面会带上“data:image/png;base64,”前缀(Web网站通用表示法),后面才是真正的base64内容。但是AppInventor2 SimpleBase64组件解码时,参数必须是不带前缀的base64文本,因此只需要去掉前缀就行,代码如下:
(, 下载次数: 57)
如果图片是jpeg格式,那就是下面这样替换,其他图片格式依次类推: (, 下载次数: 57)

经测试,可以正常发送并还原图片,正常展示:
(, 下载次数: 54)




作者: App Inventor 2     时间: 2024-10-01 20:38
关于消息体大小的限制,文档中没有描述这个限制,但是每个MQTT平台应该是有限制的,经过实际测试befa.com平台,base64文本大小约100KB以内的消息订阅可以正常接收,超过则无法接收。建议你自己的平台也进行一下测试,如果有限制,则要考虑源头压缩图片后再base64传输。
注:图片base64一般在原文件大小基础上膨胀50%左右。


---------------------
PS:300KB以上也测试成功了,图片分辨率较高,不过速度非常非常慢,分钟级别。。。可能还是跟mqtt平台有关。
(, 下载次数: 52)





欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3