MQTT 错误:连接丢失

MQTT 错误:连接丢失

设置了“监听器”控制台:

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

来自网页:

这意味着它通常会运行未发布或实验性的代码,并且可能不像您希望的那样稳定。

我遇到了同样的问题,但是能够iot.eclipse.org成功使用。那里的流量很大,所以最好使用特定的主题而不是#.对于您的测试,只需从以下选项中选择一个公共经纪人名单不需要注册。

答案2

我发现添加 --insecure 选项可以为我解决这个错误。

mosquitto_pub -t mqtt-topic -m "sample-msg-1" --insecure

我的 mqtt 服务器都是内部的,端口都在 docker 内,因此 --insecure 选项实际上并没有为我的案例增加任何额外的暴露。我不知道为什么这对我有用,因为我认为它应该使用 mqqt (未加密)而不是 mqqts (加密)

相关内容