Android Mqtt客戶端的接入

前言

隨着物聯網的不斷髮展,Android在設備上的應用也越來越廣泛。在設備和服務器通信時,大部分app都是主動去請求的,基於Mqtt發佈/訂閱的機制可以實現雙向的消息通訊。

搭建windows版的Mqtt服務

下載地址:http://activemq.apache.org/apollo/download.html

 1.將下載後的appollo的壓縮包解壓到一個目錄(eg:D:\apollo),使用cmd命令切換到appollo的bin目錄下,

  運行“apollo.cmd create mybroker”創建服務器實例,會在bin目錄下生成mybroker文件夾

2.切換到mybroker的bin目錄執行 “appolo-broker.cmd run” 出現以下內容說明Mqtt服務已經搭建成功啦

 3.瀏覽器訪問

Android上實現Mqtt客戶端

標準的mqtt客戶端demo
https://github.com/eclipse/paho.mqtt.android

無法運行的話文章末尾附件下載,本人親測可用

1.運行demo,並配置服務器地址、端口號(mqtt服務已經開啓,手機和電腦處於同一局域網內)

2.連接上服務器,打開瀏覽器便可以查看連接的設備和收發的消息

關鍵代碼類及方法:

連接:

MqttAndroidClient
 @Override
    public IMqttToken connect(MqttConnectOptions options, Object userContext,
                              IMqttActionListener callback) throws MqttException {

        IMqttToken token = new MqttTokenAndroid(this, userContext,
                callback);

        connectOptions = options;
        connectToken = token;
         ...............
         ...............
}

訂閱:

  @Override
    public IMqttToken subscribe(String topic, int qos) throws MqttException,
            MqttSecurityException {
        return subscribe(topic, qos, null, null);
    }

發送:

 @Override
    public IMqttDeliveryToken publish(String topic, MqttMessage message)
            throws MqttException, MqttPersistenceException {
        return publish(topic, message, null, null);
    }

 

標準的Mqtt Demo是基於多個clientId鏈接同一個服務上進行的封裝,如果我們只是單純的單一設備(例如:以uuid還是mac地址作爲clientId)進行連接時,可以直接基於MqttAndroidClient 來進行代碼編寫。在回調中處理響應的業務邏輯,注意斷連問題。
 

包含windows下的mqtt服務壓縮包和Android mqtt的標準demo
https://download.csdn.net/download/swedne/12466028

 

                                      對你有用的話記得點贊哦!有問題的可以留言,我會及時答覆












 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章