0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「moscajs / aedes-cli」を使った CLI による MQTTブローカーの準備(MQTT.js を使ったクライアントを組み合わせる)

0
Posted at

はじめに

以前、以下のポストや記事で名前を出していた「Aedes」に CLI があるようだったので試してみました。

●p5.js Web Editor で MQTT を扱ってみる(MQTT.js や shiftr.io Desktop を利用) - Qiita
 https://qiita.com/youtoy/items/7c58de69b4b20543a5b5

Aedes

●moscajs/aedes: Barebone MQTT broker that can run on any stream server, the node way
 https://github.com/moscajs/aedes

2026-06-10_23-35-17.jpg

aedes-cli

Aedes の CLI(aedes-cli)について、以下のページで説明などがされています。

●moscajs/aedes-cli: Run Aedes MQTT Broker from the CLI
 https://github.com/moscajs/aedes-cli

2026-06-10_23-37-20.jpg

●aedes-cli - npm
 https://www.npmjs.com/package/aedes-cli

2026-06-10_23-38-06.jpg

aedes-cli を試してみる

さっそく aedes-cli を試してみます。公式の説明だとグローバルインストールをする手順になっていますが、今回はローカルインストール(以下のコマンド)にします。

npm i aedes-cli

インストールした際の画面は、以下のとおりです。

2026-06-10_23-29-08.jpg

コマンドのヘルプを見てみる

コマンドのヘルプを見てみます。ローカルインストールを使ったので、コマンド実行時にはインストールを実行したフォルダで npx をつけたコマンドを使います。

npx aedes -h

表示された内容は、以下のとおりです。

2026-06-10_23-41-56.png

2026-06-10_23-42-15.png

ヘルプの内容の抜粋

ヘルプで色々なオプションなどが出ていますが、自分が使いそうなものは以下がありそうでした。

2026-06-10_23-49-39.jpg

2026-06-10_23-47-25.jpg

2026-06-10_23-48-12.jpg

2026-06-10_23-48-38.jpg

aedes-cli を使った MQTT のやりとり

aedes-cli で MQTTブローカーを起動する

それでは、aedes-cli で MQTTブローカーを起動します。今後、クライアントにブラウザを使おうと思っているのがあり、over TCP ではなく「MQTT over WebSocket」を使います。
(なお、今回のこの後のテストで使うのは「MQTT.js + Node.js」によるクライアントを使います)

MQTT over WebSocket を指定するためのオプションは、以下になりそうです(※ INFOレベルのログ出力のオプションもつけています)。

npx aedes --protos ws -v

上記を実行後、以下のように 127.0.0.1:3000 で MQTTブローカーが起動しました。

2026-06-10_23-54-49.jpg

ポートの変更設定や外部インターフェースからの接続も受け付ける設定

ちなみに、ポートの変更をする場合や、ローカルの通信だけでなく外部インターフェースからの接続も受け付ける設定にする場合は、以下のコマンドになります。

npx aedes --protos ws --host 0.0.0.0 -v
npx aedes --protos ws --ws-port 8080 --host 0.0.0.0 -v

クライアントからの接続を試す

あとは、MQTT over WebSocket でのクライアントからの接続を試します。その際、以下の記事を書いたときなど、過去に何度も使っていた MQTT.js を使います。

●MQTTブローカーとしても使える Beebotte で MQTT.js を使った Pub/Sub(Node.js で実装)【2022年4月版】 - Qiita
 https://qiita.com/youtoy/items/e2539558b67e708b905d

クライアント側のコード

クライアント側のコードは以下としました。これを実行する前に、 npm i mqtt でパッケージをインストールしておいてください。

import { connect } from "mqtt";
const client = connect("ws://127.0.0.1:3000");

client.on("connect", () => {
  client.subscribe("presence", (err) => {
    if (!err) {
      client.publish("presence", "Hello mqtt");
    }
  });
});

client.on("message", (topic, message) => {
  console.log(message.toString());
  client.end();
});

動作確認

最後に動作確認です。以下のように、MQTTブローカーと MQTTクライアントとの通信が行えたことを確認できました。

2026-06-11_01-05-29.jpg

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?