Android MQTT Demo

MQTT 類似於客戶端和服務器之間的一個觀察者模式,客戶端向服務器訂閱消息主題,如果有另外一個客戶端向該主題發佈一個消息,服務器就會將該消息推送到訂閱了該主題的所有客戶端,當然如果這個客戶端沒有在線,服務器會講該消息存儲到數據庫,並且在這個客戶端上線時講該消息推送給客戶端。

下面我們用圖來理解一下它的工作過程,比如客戶端想訂閱一個名字爲hello的主題,則它們先想服務器sub(訂閱)該主題。
這裏寫圖片描述
如上圖,客戶端1、客戶端2、客戶端3分別訂閱了”hello”主題,然後客戶端4向該主題上發佈消息,此時客戶端1、客戶端2、客戶端3都會收到由客戶端4基於”hello”主題發佈的消息,如下圖。
這裏寫圖片描述

下面我們配置服務器,我們以對MQTT進行了封裝後的mosquitto爲例。
大家可以去官網尋找最新的下載,現在是2016年4月,最新版本爲mosquitto-1.4.8。官網地址爲:http://mosquitto.org/files/source/

//安裝必要的依賴包
sudo apt-get install libssl-dev uuid-dev libc-ares-dev libc-ares2 g++ -y
wget http://mosquitto.org/files/source/mosquitto-1.4.8.tar.gz
tar -xzvf mosquitto-1.4.8.tar.gz
cd mosquitto-1.4.8
sudo make
sudo make install
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
sudo ldconfig

以上命令執行沒問題,說明mosquitto已經正常的安裝成功,接下來即爲使用。如下圖,
這裏寫圖片描述

1.開啓mosquitto服務,執行命令爲

mosquitto -v

mqtt服務跑起來了,會有相關的log信息.

下面四個分別代表客戶端一、客戶端二、客戶端三、客戶端四,客戶端一、二、三都訂閱了”hello”主題,執行訂閱命令爲:

mosquitto_sub -v -t "hello"

客戶端四則向該”hello”主題發送消息,發佈一個”Hi”消息,上圖可以看到客戶端一、二、三已經收到該消息,執行發佈命令如下:

mosquitto_sub -t "hello" -m "Hi"

上面就是一個完整的交互過程。其實這個客戶端可以包括是手機,嵌入式設備等等。
官方給了一個Android的例子,我將其封裝了一下,基本上Android MQTT的開發基於這個例子進行修改就行了。
github:https://github.com/shuangmin/AndroidMQTT

發佈了118 篇原創文章 · 獲贊 66 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章