设置了“侦听器”控制台:
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 代理表明没有语法错误,但是问题仍然是为什么在原始测试中返回错误
从网页:
我遇到了同样的问题,但能够
iot.eclipse.org
成功使用。那里的流量很大,所以最好使用特定主题而不是#
. 对于您的测试,只需从不需要注册的公共经纪人列表中选择一个。我发现添加 --insecure 选项为我解决了这个错误。
我的 mqtt 服务器都是内部的,端口都在 docker 内,所以 --insecure 选项并没有真正为我的情况增加任何额外的风险。我不确定为什么这对我有用,因为我认为它应该使用 mqqt(未加密)而不是 mqqts(加密)