English

チュートリアル - 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端末側にWriterReader機能、 バックエンド側にBroker機能を配置します。

構成

本チュートリアルの見通しを良くするため、以降は

という機能要素ごとに細分化して記述します。 内容に沿って作業を進めてください。

一通り環境構築を済ませ、 Android端末のテキスト送受信アプリを実際に動かす前に、 対向Brokerとの接続情報を設定する箇所があります。 お手元のネットワーク構成に合わせて調整してください。

3. 作業の流れ

3.1 バックエンド側の作業(その1)

本チュートリアル用のAndroidテキスト送受信アプリは、 WriterReaderの双方が同じ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を用いる場合、 以下のような機能制限があることにご留意ください。

5. うまくいかないときは

5.1 Androidアプリケーションの設定内容を初期化したい

    Settings
    --> Apps & notifications
      --> App info
        --> Echo
          [FORCE STOP]
          --> Storage & cache
            --> Clear storage (or CLEAR DATA)

5.2 AndroidアプリケーションがBrokerと接続できない

5.3 Androidアプリケーション実行中にエラー発生する