はじめに
自身の備忘録として掲題の件、ここに残させていただきます。どなたかのお役にたつことがあれば幸いです
※2015.12.29追記:今だと mosquitto1.4 を websocket有効でビルドするほうがいいのかもしれません、手順(というかshell)をコメントに書きました
なぜ HiveMQ なのか
MQTT の Websocket bridge が必要だったのですが、mosquitto では現行の 1.3 系にはそれがなく、開発系の 1.4 を自分でビルドするか mod_websocket を使うなどが必要になります。Sango も検討したのですが月間最大メッセージ数の制限が合わず、CloudMQTTは Websocket がありませんでした。そこで HiveMQ を VPS にインストールして試してみました
インストール
事前準備:port 1883 と 8000 の開放
HiveMQ は mqtt と websocket のポートにデフォルトでそれぞれ
1883 と 8000 を使いますので、事前に /etc/sysconfig/iptables に以下を追加して、iptables を restart しておきます
# for hiveMQ
-A SERVICES -p tcp --dport 1883 -j ACCEPT
-A SERVICES -p tcp --dport 8000 -j ACCEPT
sudo /etc/rc.d/init.d/iptables restart
事前準備:JRE のインストール
sudo yum install JRE がエラーになってしまうので、rpm をダウンロードしてきてインストールします。こちらの手順を参考にさせていただきました.
1. rpm ファイルをダウンロード
2. インストール
rpm -ivh jre-7u7-linux-x64.rpm
HiveMQ のダウンロード
ダウンロードと動作確認
こちらの手順を参考にさせていただきました。
1.download
wget --content-disposition http://www.hivemq.com/downloads/releases/latest
2.解凍して動作確認
unzip hivemq-<ダウンロードしたバージョン>.zip
cd <hivemq をダウンロードしたディレクトリ>/bin
chmod 755 run.sh
./run.sh
mosquitto などで pub/sub できることを確認します
Websocket を有効化
こちらの方と同じハマりかたをしてしまいました ^^;
自分がハマるようなネタは誰もが既にがハマっていて、誰かが stack overflow で既に聞いてくれていて、誰かが stack overflow で既に答えてくれている。有り難い世の中になったものです
デフォルトでは Websocket が無効になっているので
nano 等で conf/configurations.properties を開き、
websockets.enabled の設定を false から true に変更します
サービスに設定
こちらを参考にしました
- hivemq アカウントを作成し、ファイルの所有者の変更
useradd -d /opt/hivemq hivemq
chown -R hivemq:hivemq <hivemq をダウンロードしたディレクトリ>
- 初期化スクリプトの /etc/init.d/ へのコピー
cp <hivemq をダウンロードしたディレクトリ>/bin/init-script/hivemq-debian /etc/init.d/hivemq
chmod +x /etc/init.d/hivemq
3.サービスの起動
sudo /etc/init.d/hivemq start
参考文献
-RPMを使用したLinux x64版Javaのインストール方法
-HiveMQ: getting-started
-HiveMQ User Guide: starting hivemq