チュートリアル - STEP1: テキスト送受信アプリの実行
目次
1. 概要 2. システム全体構成 3. 作業の流れ 3.1 バックエンド側の作業(その1) 3.2 Android端末側の作業 3.3 バックエンド側の作業(その2) 4. 制約事項 5. うまくいかないときは 5.1 Androidアプリケーションの設定内容を初期化したい 5.2 AndroidアプリケーションがBrokerと接続できない 5.3 Androidアプリケーション実行中にエラー発生する
1. 概要
Android版のSINETStreamライブラリを使うサンプルプログラム第一弾として、 簡単なシステム構成での使用例を示します。
GUI操作でユーザが入力した任意の文字列(例えば「Hello World」)がメッセージとしてBrokerに送信され、
それをBrokerが折り返したものを受信してGUIに表示するというものです。
2. システム全体構成
この例では、下図のようにAndroid端末側にWriterとReader機能、
バックエンド側にBroker機能を配置します。

本チュートリアルの見通しを良くするため、以降は
- バックエンド側の作業
- Android端末側の作業
という機能要素ごとに細分化して記述します。 内容に沿って作業を進めてください。
一通り環境構築を済ませ、
Android端末のテキスト送受信アプリを実際に動かす前に、
対向Brokerとの接続情報を設定する箇所があります。
お手元のネットワーク構成に合わせて調整してください。
3. 作業の流れ
3.1 バックエンド側の作業 (その1)
本チュートリアル用のAndroidテキスト送受信アプリは、
WriterとReaderの双方が同じBroker接続パラメータ(アドレス/ポート、
トピック名)を使用します。
したがって、本チュートリアルに関してBrokerに特別な作業は不要です。
Android端末から対向Brokerに接続さえできれば十分です。
すでに他のチュートリアルで用意したBrokerがあれば、
それをそのまま流用できます。
ここでは、Android版のもう一つのチュートリアル(STEP2)で用いるバックエンドシステムはそのままにして、
MQTTのBroker機能だけを流用する例を示します。
もしまだSTEP2のバックエンド機能を立ち上げていない場合、別紙
チュートリアル DOCKER-CONTAINER
の案内に従いDocker Engineの導入、
およびコンテナイメージの導入と起動といった一連の作業を実施してください。
% sudo docker run -d --name broker -p 1883:1883 -p 80:80 harbor.vcloud.nii.ac.jp/sinetstream/android-tutorial:latest
このdocker runコマンド実行により、
バックエンド側の導入とサーバ群の起動が自動的に実施されます。
3.2 Android端末側の作業
お手元のAndroid端末へのテキスト送受信アプリの導入と設定、 操作方法などの手順に関して記述します。
詳細は別紙 Android端末側の作業 を参照ください。
3.3 バックエンド側の作業 (その2)
一通り動作の確認が終わったら、計算機資源の解放が必要です。 以下のコマンドにより、 チュートリアル用コンテナイメージの停止と削除を実施してください。
もしAndroid端末側のアプリケーションが起動中の場合、
Broker停止を 契機に接続が切られるためAndroidアプリケーションに「EOF例外」エラー メッセージが表示されます。
% sudo docker stop broker
% sudo docker rm broker
詳細は別紙 チュートリアル DOCKER-CONTAINER を参照ください。
4. 制約事項
システム動作を体験していただくチュートリアルという性質上、
Android版SINETStreamライブラリの提供する全ての機能を網羅しているわけではありません。
ここで示したチュートリアル用のBrokerを用いる場合、
以下のような機能制限があることにご留意ください。
Brokerとの接続方法-
ユーザ認証、SSL/TLS接続、データ暗号化のいずれも実施せず、 最も簡易な方法で接続します。
-
処理の簡素化のため、
Brokerに接続される個々のAndroid端末を区別しません。 複数台のAndroid端末を同じトピックで同時にBrokerに接続しても問題ありません。 その場合は、あるWriterが送信した内容が全てのReader宛てに一斉配信されます。
-
5. うまくいかないときは
5.1 Androidアプリケーションの設定内容を初期化したい
- いったん全初期化して、設定をやり直したい
- 以下の手順でアプリケーションのローカルデータを消去してください。
Storage(AndroidOSバージョンによってはDATA)領域とCache領域の2種類がありますが、前者が消去対象です。
Settings
--> Apps & notifications
--> App info
--> Echo
[FORCE STOP]
--> Storage & cache
--> Clear storage (or CLEAR DATA)
5.2 AndroidアプリケーションがBrokerと接続できない
Broker接続失敗のエラーダイアログが表示される- Android端末が外部ネットワークに到達可能、 すなわち携帯電話網またはWi-Fiが有効(= 機内モードでない)ことを確認してください。
- バックエンド側で
Brokerが稼働中であることを確認してください。
Brokerとの接続タイムアウトになる- 接続先
BrokerのIPアドレス(またはFQDN)とポート番号を確認してください。- FQDN: Fully Qualified Domain Name
- Android端末と
Broker間のIP経路設定が正しいことを確認してください。 - 途中でファイアウォールが設定されている場合はその内容を確認してください。
- 接続先
5.3 Androidアプリケーション実行中にエラー発生する
- 「EOF例外」エラーメッセージが表示される
Brokerとの接続が切れたことを示します。- Android端末の外部ネットワーク接続状況を確認してください。
- バックエンド機材のコンテナ動作状況を確認してください。