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.pingerx:android-mqtt:1.0.2' }
使用流程
-
初始化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()