MQTT在Android上的二次封裝
MQTT在物聯網上的運用十分的廣泛,目前移動端的訊息推送服務,資料直連服務等都是基於MQTT訊息協議進行。
閱讀了很多MQTT的相關資料,專案中也使用了一段時間,發現MQTT表現得非常穩定。所以這裡安利一波。
新增依賴
-
在project的build.gradle檔案中新增maven倉庫
repositories { maven { url "https://repo.eclipse.org/content/repositories/paho-snapshots/" } }
-
在app的build.gradle檔案中新增依賴
dependencies { implementation 'com.github.PingerOne:MqttAndroid:1.0.1' }
使用流程
-
初始化MQTT
MqttManager.getInstance().init(context)
-
連線MQTT服務端
MqttManager.getInstance().connect { onConnectSuccess { showTips("伺服器連線成功") } onConnectFailed { showTips("伺服器連線失敗:${it?.message}") } }
-
訂閱一個話題
MqttManager.getInstance().subscribe(subscriptionTopic) { onSubscriberSuccess { showTips("訂閱成功") } onSubscriberFailed { showTips("訂閱失敗:${it?.message}") } onDeliveryComplete { showTips("訊息推送完畢:$it") } onConnectionLost { showTips("連線已斷開") } }
-
推送一條訊息
MqttManager.getInstance().publishMessage(publishTopic, "Hello Mqtt...")
-
主動斷開連線
MqttManager.getInstance().disconnect()
-
關閉MQTT客戶端(一般app退出時呼叫)
MqttManager.getInstance().close()