コーヒー飲みながら仕事したい

仕事で使う技術的なことの備忘録とか

EMQ を使用して mqtt の通信をする

EMQ とは

EMQ とは、 Erlang で実装された mqtt ブローカーです。
mqtt ブローカーとしては mosquitto が有名ですが、以下の特徴があります。

  • mosquitto と比較しても、 EMQ もなかなか性能が良い(らしい)
  • mosquitto ではできない、ブローカーのクラスタを実現できる
  • Web ブラウザの GUI が提供されているので、クライアントの管理がしやすい

Document

英語ですが、こちらに公式ドキュメントが公開されています。

インストール

環境は、 Windows 10 64bit とします。

EMQ からダウンロードして、C直下にでも解凍します。解凍するだけで、OS へのインストール作業は不要です。

ブローカーの設定

とりあえずここでは、クラスタ設定は省略します。単一ブローカーのみの接続を想定します。

C:\emqttd\etc\emq.conf (C直下に解凍した場合)がブローカーの設定ファイルです。

IPアドレスの設定

以下を変更します。ここでは、ブローカーのIPアドレス192.168.0.1 を想定します。

設定キー名 変更前 変更後
node.name node.name = emq@127.0.0.1 node.name = emq@192.168.0.1
listener.tcp.external listener.tcp.external = 127.0.0.1:1883 listener.tcp.external = 192.168.100.106:1883
listener.tcp.internal listener.tcp.internal = 127.0.0.1:11883 listener.tcp.internal = 192.168.100.106

SSLの設定

↓に雑ですが記載しています。

tassi-yuzukko.hatenablog.com

ブローカーの起動

C:\emqttd フォルダに移動し、コマンドプロンプトで以下を実行します。

bin\emqttd console

最初の起動では、ファイアウォールの許可みたいなのが出るかもしれませんが、[OK] すればよいです。

ちょっと待つと、Erlang のウィンドウが表示されます。
ウィンドウ内で (emq@192.168.0.1)1> Load emq_mod_presence module successfully. と表示されれば、起動成功です。

f:id:tassi-yuzukko:20180308101429p:plain

Web ブラウザで確認

上記の起動方法でブローカーが正常に起動しているならば、http://localhost:18083/へアクセスするとダッシュボードが表示されます。

f:id:tassi-yuzukko:20180308101433p:plain

終了方法

Eranlg のウィンドウを閉じれば、同時にブローカーも停止します。

クラスタについて

今回は省略しましたが、クラスタに関しては、以下が参考になります。

qiita.com