LoginSignup
3
2

More than 3 years have passed since last update.

グローバルインストールせずにMQTTをCLIで試す

Last updated at Posted at 2020-09-23

JavaScriptやNode.jsを書いてる人はnpmコマンドなどは通常装備だと思うのでnpxでmqttを利用する方法のメモです。
JSerやNoder向けIoTって感じですね。とはいえMQTTをとりあえず試すってときの話です。

npmが入ってない人は素直にmosquittoをインストールでも良いかも。

MQTTクライアントライブラリ(MQTT.js)を利用

mqttをcliで利用できるかつnpmにレジストリされてるツール探してました。

探しても見つからないなぁと思ってたらmqtt.jsのCLI利用のドキュメントにありました。 @youtoyさんありがとうございます :)

subscribe側

$ npx mqtt sub -h ホスト名 \
-t トピック名 \

これで待ち受けてくれます。npxは一回だけインストールして実行してくれるのでグローバルインストール(npm i -g ~~)したく無い時に使えます。

publish側

$ npx mqtt pub -h ホスト名 \
-t トピック名 \
-m '{"content":"Hello!!! from MQTT!"}'

PubNubの場合

PubNubで5分でリアルタイムWebこと初め + MQTTでデバイス連携も など最近PubNub触ってるのでこちらもメモ。mosquittoのCLIとオプションが一緒なのでコピペで大丈夫でした。

subscribe側

$ npx mqtt sub -h mqtt.pndsn.com \
-t pub-c-xxxxxxxxxxxxxxxxxxxx/sub-c-xxxxxxxxxxxxxxxxxxxx/トピック名 \
-i pub-c-xxxxxxxxxxxxxxxxxxxx/sub-c-xxxxxxxxxxxxxxxxxxxx/クライアントID

publish側

$ npx mqtt pub -h mqtt.pndsn.com \
-t pub-c-xxxxxxxxxxxxxxxxxxxx/sub-c-xxxxxxxxxxxxxxxxxxxx/トピック名 \
-i pub-c-xxxxxxxxxxxxxxxxxxxx/sub-c-xxxxxxxxxxxxxxxxxxxx/クライアントID \
-m '{"content":"Hello!!! from MQTT!"}'

所感

subscribe側は一度実行したら実行しっぱなしというのが多いと思うので、npxでも良さそうだけど、publish側は確認で何回も実行すると思うのでnpxでの実行だと毎回インストールされてだるいかもしれませんね。

npm i -g mqttでグルーバルインストールしてしまってもよいかもしれません。

追記: 同じタイミングで記事書いてくれてたという笑

@youtoyさんも記事を書かれていたので、リンクを掲載します。

MQTTクライアントをコマンドラインで簡単に実行する(npx と MQTT.js)

同じタイミングで......わろ

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2