「リスナー」コンソールを設定します。
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
~からWebページ:
これは、リリースされていないコードや実験的なコードを頻繁に実行し、必要なほど安定していない可能性があることを意味します。
私も同じ問題がありましたが、iot.eclipse.org
うまく使えました。トラフィックが多いので、代わりに特定のテーマを使用することをお勧めします#
。テストするには、次のいずれかのオプションを選択してください。公共ブローカーリスト登録は不要です。
答え2
--insecureオプションを追加すると、このエラーが解決されることがわかりました。
mosquitto_pub -t mqtt-topic -m "sample-msg-1" --insecure
私のmqttサーバーはすべて内部にあり、ポートはすべてdocker内にあるので、--insecureオプションは実際に私の場合は追加のインプレッションを追加しません。私はmqqts(暗号化された)の代わりにmqqt(暗号化されていない)を使うべきだと思ったので、これがなぜ私にとって効果的であるかわかりません。