设置了“监听器”控制台:
mosquitto_sub -h test.mosquitto.org -t "myTopic" -v
mosquitto_pub
返回错误:
pi@raspberrypi:~ $ mosquitto_pub -h test.mosquitto.org -t 'myTopic' -m 'hello world'
**Error: The connection was lost.**
可以从命令行采取哪些步骤来诊断是否存在语法问题?
更新:
将 MQTT 服务器替换为iot.eclipse.org
不会出现错误并按预期返回有效负载。
侦听器控制台设置:
mosquitto_sub -h iot.eclipse.org -t "myTopic" -v
发送有效负载:
mosquitto_pub -h iot.eclipse.org -t 'myTopic' -m 'hello world'
mosquitto_pub
返回:
pi@raspberrypi:~ $ mosquitto_sub -h iot.eclipse.org -t "myTopic" -v
myTopic hello world
发布有效负载:
pi@raspberrypi:~ $ mosquitto_pub -h test.mosquitto.org -t 'myTopic' -m 'hello world'
更改 MQTT 代理表明没有语法错误,但是问题仍然是为什么在原始测试中返回错误
答案1
答案2
我发现添加 --insecure 选项可以为我解决这个错误。
mosquitto_pub -t mqtt-topic -m "sample-msg-1" --insecure
我的 mqtt 服务器都是内部的,端口都在 docker 内,因此 --insecure 选项实际上并没有为我的案例增加任何额外的暴露。我不知道为什么这对我有用,因为我认为它应该使用 mqqt (未加密)而不是 mqqts (加密)