mosquitto_pub 是否将二进制文件转换为 ASCII?

Does mosquitto_pub convert a binary file to ASCII?

我对 MQTT 协议还很陌生,如果我的问题听起来很愚蠢,我很抱歉。我正在从设备发布图像,当我在 CLI 上订阅它时,我可以看到一些不是二进制格式的字符。所以我的问题是,当图像发布时,它是默认转换为 ASCII 格式然后发送还是以 ASCII 格式或其他格式接收?

我给出的发布命令是:

mosquitto_pub --cafile /home/pi/nirupama/rootCA.pem --cert /home/pi/nirupama/certificate.pem --key /home/pi/nirupama/private.pem -h xxxxxxxxxxxxxx.iot.us-west- 2.amazonaws.com -p 8883 -q 1 -d -t $aws/things/raspberry-pi/shadow/update -i mqtt_test -f /media/webcam/picture.jpg

订阅命令为:

mosquitto_sub --cafile /home/pi/nirupama/rootCA.pem --cert /home/pi/nirupama/certificate.pem --key /home/pi/nirupama/private.pem -h xxxxxxxxxxxxxx.iot.us-west- 2.amazonaws.com -p 8883 -q 1 -d -t $aws/things/raspberry-pi/shadow/update -i mqtt_test1

JP Mens 在 MQTT 邮件列表中回答了这个问题: https://groups.google.com/forum/#!topic/mqtt/MIwf0-Bi9yM

答案是二进制协议中的 MQTT,它们的有效负载不会转换为 ASCII 或任何其他文本格式。您确实应该能够在不损坏的情况下发送二进制图像负载。