
次のようなメッセージを公開してみます:
mosquitto_pub -h 7.18.13.43 -t "Home/#" -m "test bulb1" -v -u user1
-P md
CError: Invalid publish topic 'Home/#', does it contain '+' or '#'?
mosquitto_pub -h 7.18.13.43 -t # -m "test bulb1" -u user1 -P md
Error: Invalid publish topic '#', does it contain '+' or '#'?
なぜこのようなエラーが発生するのか分かりません...?
答え1
私は専門家ではありませんが、確かに「#」を実際のトピック名に置き換える必要があります。
私の理解が正しければ、# はワイルドカードであり、サブスクライブしているが公開していない場合に意味を持ちます。
これは、発生しているエラーとも一致しています。
答え2
私の経験から、# は MQTT ワイルドカードであり、それに続くすべてのトピック (トピック階層レベル) も含める必要があることがわかっています。実際、ワイルドカードはトピックのサブスクライブでサポートされており、公開ではサポートされていません。同じ問題があったとき、この解決策を思いついたのは非常に幸運でした。ですから、これがあなたにとって役立つことを心から願っています。とにかく、同じ問題にまだ遭遇している場合は、MQTT パブリッシュ サブスクライブ詳細については、返信をお待ちしています。