node-red-contrib-mqtt-broker の元となる mosca がArchivedになっていて node-red-contrib-aedes MQTTブローカーノードを見つけたメモ

node-red-contrib-mqtt-broker の元となる mosca がArchivedになっていて node-red-contrib-aedes MQTTブローカーノードを見つけたメモです。

背景

image

最近、 Windows 10 で Node-RED を使っていて node-red-contrib-mqtt-broker を使おうとしたところ、以下のようなエラーに出くわしました。

image

SchemaError: Expected `schema` to be an object or boolean

はじめは、よくある Windowsでnpm installしてnode-gypでつまずいた時対処方法 – Qiita あたりの npm install --global windows-build-tools まわりのエラーかなと思ったのですが解決せず、ちょっと Node.js 環境を崩してしまった可能性はあるのですが、さらに、追ってみると node-red-contrib-mqtt-broker の元となる moscajs/mosca: MQTT broker as a module でも同じエラーが出ることがわかりました。

ただ、強引な解決策は無くはないのですが、なにかしっくりこない。

というのも、

moscajs/mosca: MQTT broker as a module

image

mosca が This repository has been archived by the owner. It is now read-only. となっていてメンテナンスされておららず、なんと aedes という新しいライブラリが開発されていました。

ライブラリ内の Mosca vs Aedes を見てみると、高速化が行われているようでイイ感じです。

改めて見てみると node-red-contrib-mqtt-broker にも紹介がある

image

よく見ると、 node-red-contrib-mqtt-broker にも紹介ありました。

Not maintained anymore because dependant Mosca is not maintained. Please check node-red-contrib-aedes node instead of that.

のとおりで、 さきほどの aedes を元にした node-red-contrib-aedes (node) – Node-RED がありました。

インストールしてみる

image

パレットの管理から node-red-contrib-aedes を調べたら、すんなり出てきたのでインストールします。ちなみに、node-red-contrib-mqtt-broker が入っていると競合してインストールに失敗したので、前もってアンインストールしておきましょう。

image

無事インストールされたので node-red-contrib-mqtt-broker と同じ感覚でワークスペースに配置します。

image

どどん。

image

デプロイすると、さきほどエラーが起きていた Windows 10 でもちゃんと動きました。使用感は変わらず!ありがたい!

image

内部の設定も node-red-contrib-mqtt-broker の内容を引き継ぎつつも、分かりやすいレイアウトになっていました。

元となる aedes もこれからアップデートされていきそうな新鮮さを感じますし、いちはやく、Node-REDの方々が追いかけてくれているので、今後はこちらを使っていこうと思います。

Windows 10でのエラーも直すのが大変だったので、なおさら移行したほうがいいですね。