Test MQTT Client (Android)

之前把 Mosquitto (MQTT Broker) 裝好之後,在 OSX 和 Ubuntu 用 terminal 測試過 Subscribe and Publish,這次想找 Android 版本的 MQTT Client 來試試看。 我使用的是 IBM Mobile Messaging & M2M Client Pack,可以從 IBM Mobile and m2m community 下載

依據說明,這個 Pack 包含了以下內容,它實作了蠻多種語言的 MQTT Client,其中 Android Sample 裡面有一個已經做好的 MqttExerciser.apk (下載到本地端後,位於:/SDK/clients/Android/samples/apks/MqttExerciser.apk),可直接安裝測試,並且附 source code。

  • Java Client - org.eclipse.paho.client.mqttv3
  • Java Samples
  • Android Sample (mqttExerciser)
  • C client
  • iOS client
  • Client for JavaScript

安裝、執行 MqttExerciser.apk 後,可看到以下畫面,點選畫面下方的 「+」

mqttExerciser: Add

接著輸入 Client ID (anything you like), MQTT Server IP, MQTT Server Port (default is 1883) 再按 Connect,如下

mqttExerciser: Connect MQTT Server

MQTT Server Connect 成功之後,會顯示以下畫面,點選畫面右邊的「>」

mqttExerciser: Connect OK

如下,進入設定 Connection Details 的 SUBSCRIBE 畫面,輸入 Topic: "hello/world",QOS 選 "0",輸入完後按下方的 "SUBSCRIBE"

mqttExerciser: Subscribe

如下,進入 Connection Details 的 HISTORY 畫面,可以看到 "Subscribed to hello/world" 的訊息,代表已訂閱 "hello/world" topic

mqttExerciser: Subscribe OK

切換到 Ubuntu (MQTT Server) 的 terminal 視窗,向 MQTT Server 上面有註冊 hello/world 的人發佈訊息 “Hello Nexus”

Command: $ mosquitto_pub -d -t hello/world -m "Hello Nexus"

執行結果:

Client mosqpub/2603-ubuntu sending CONNECT
Client mosqpub/2603-ubuntu received CONNACK
Client mosqpub/2603-ubuntu sending PUBLISH (d0, q0, r0, m1, 'hello/world', ... (11 bytes))
Client mosqpub/2603-ubuntu sending DISCONNECT

回到手機端,如下圖,Connection Details 的 HISTORY 畫面上會出現 "Receiveed message Hello Nexus" 的訊息

mqttExerciser: Received message

同時,手機會收到 notification message,如下圖

mqttExerciser: Notification message

另外,可以在 Ubuntu terminal 執行 mosquitto_sub,訂閱 hello/world,再從手機端測試 PUBLISH 功能。

以上,就是使用 Android 版的 MQTT client 與安裝在 Unubtu 上面的 Mosquitto (MQTT Broker) 測試。

Comments

Comments powered by Disqus