//
表示中
モノづくり, Computer - コンピューター, Music - 音楽

Mosquittoのインストールとサブスクライバーアプリケーション


今日はTelecasterタイプの塗装を少しやっただけです。Les Paulタイプとオリジナルモデルは漆が乾かずに手が出せませんでした。

IMG_1912

Telecasterタイプの塗装面を研いでサッとシェラックを塗り、乾くの待つ間にMQTTの準備です。

自宅サーバーにMosquittoというMQTTブローカーをインストールして起動しました。MacOS Xへのインストールは

$ brew install mosquitto

で終わりです。
起動は

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mosquitto.plist

停止は

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mosquitto.plist

です。
設定ファイル(mosquitto.conf)は変更せずに起動しました。

動作を確認するために Eclipse Paho のデスクトップアプリケーション(Eclipse Paho MQTT Utility)をダウンロードして使用しました。この段階ではPublish/Subscribeの動作確認は成功しました。

次にpahoのJavaクライアントライブラリをGitHubからクローンしてビルド。

EclipseでAribaWebプロジェクトを新規作成し、気温データと湿度データをデータベースに保存するためにクラスを定義。PostgreSQLにデータベースを新規作成して、JPAのスキーマ生成機能を使ってテーブルを作成。(エンティティクラスを含んだAribaWebアプリケーションをビルドして起動するとテーブルが自動生成されます)

PahoのMQTTクライアントライブラリをプロジェクトにインクルードし、Subscriberクラスを作成。作成にはEclipse Pahoのドキュメントを参照しました。

Subscriberは温度湿度のデータを受け取ったらそれぞれをデータベースに保存するという簡単なもの。Eclipse Pahoのドキュメントに描かれている例とほとんど変わらない内容ですが、AribaWebのAWChangeNotifierの機能を使って、新しいデータをデータベースに保存すると、AWChangeNofifierのリスナーに通知を送信するように作りました。

UIは簡単なもの。MQTTブローカーへの接続状態、温度と湿度の折れ線グラフ。10秒ごとにAWChangeNotifierの通知をチェックして、通知が存在する場合は画面をリフレッシュする。そういうものです。

iotdb

ここまで出来た段階でPaho MQTT Utilityを使ってテスト。メッセージブローカーにPublishしましたが、Publish側(Paho MQTT Utility)もSubscriber側(AribaWebで開発したWebアプリケーション)もすぐに接続が切れてしまい、メッセージがSubscriber側に届きません。以下がその時のスタックトレース。

 
 接続喪失 (32109) - java.io.EOFException
 at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:146)
 at java.lang.Thread.run(Thread.java:745)
 Caused by: java.io.EOFException
 at java.io.DataInputStream.readByte(DataInputStream.java:267)
 at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:65)
 at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:107)
 ... 1 more

ちょっと原因を調べたもののすぐにはわからず、後日ゆっくり調べることにして、この日は作業終了です。

AribaWebはデータベースを使った業務用のアプリケーションを手速く作れて大変便利ですが、スマートフォン用のUIを作るには多くのUIコンポーネントを差し替えないといけないので、簡単な表示系のアプリケーションを作るなら別のやり方を選ぶ方が楽かもしれません。

kazz12211 について

Working as a OO programmer and enjoying music, bicycle and photography.

ディスカッション

コメントはまだありません。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

評価

ブログ統計

  • 537,671 ヒット

カテゴリー

アーカイブ

カレンダー

2016年2月
« 1月   3月 »
 123456
78910111213
14151617181920
21222324252627
2829  
%d人のブロガーが「いいね」をつけました。