PahoでMQTTv5を試そうとしたらAssertionErrorが発生した

この記事は約2分で読めます。
スポンサーリンク

かなりマニアックな内容なので、恐らく私しか興味がない記事なのですが、自分への備忘録として残しておきます。

ハマりポイント

paho-mqttでMQTTv5の通信を試そうとしたら「AssertionError」が発生してハマりました。

原因

環境によって様々だと思いますが、私のケースでは以下。

Ubuntu 18.04のデフォルトリポジトリのmosquittoがv5対応していない

私はUbuntu 18.04のmosquittoをMQTTブローカーとして使っていたのですが、どうやらこのバージョンはMQTTv5に対応していないっぽいです。

自分はひたすら自分の(ネットから拾った)サンプルコードでAssersionErrorが出てコードが原因だと思いこんで四苦八苦していたのですが、そもそもmosquitto-clientでMQTTv5を試してもうまく行かなかったので、mosquittoのバージョンを上げることにしました。

mosquitto 2.0.10でもうまく行かなかったのでEMQに変更・・・成功

で、mosquitto 2.0.10に変更したのですが、それでも「Authorization Failed」に引っかかってSub/Pubができない。

最終的に以下の記事にたどり着いてDocker上にEMQを稼働させることに。

後はあっさりとPub/Subが動作。Wiresharkでパケット確認してMQTTv5のペイロードも確認。

MQTTv5ってまだまだメジャーじゃないんかな?ネット上でも情報がとても少ない。

というわけで、はじめからEMQ使ってたら良かったって話です。

ちなみに、MQTTv5で新たに実装されたProperties周りの情報(とPythonのサンプルコード)は以下のページが一番詳しかった。

便利になったのかややこしくなったのか・・・

コメント

タイトルとURLをコピーしました