Android 中MQTT协议的使用
发布时间:2020-02-19责任编辑:满帅 浏览:245
前言
项目中有用到mqtt,碰巧没人负责这一块,所以毛遂自荐就看了一波,下面是一些简单的使用记录,写得不好,仅供参考。若没有mqtt服务器的朋友,建议先建一个mqtt服务,不然看不到效果。
什么是Mqtt?
MQTT 的全称为Message Queue Telemetry Transport,是轻量级基于代理的发布/订阅的消息传输协议,它可以通过很少的代码和带宽和远程设备连接。例如通过卫星和代理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协议开销小和能高效的向一和多个接收者传递信息,故同样适用于称动应用设备上。MQTT就包含了以下一些特点:
1.实现简单
2.提供数据传输的 QoS
3.轻量、占用带宽低
4.可传输任意类型的数据
5.可保持的会话(session)
Android 下如何使用Mqtt?
在Android中使用Mqtt可以分为6个步骤:
·导入mqtt包;
·配置MqttConnectOptions;
·调用connect并将配置好的参数写入;
·通过指定的消息进行消息订阅;
·向订阅的topic中发布消息;
·通过mqttCallBack的回调对接收到的消息进行处理;
// mqtt 包导入
implementation'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
implementation'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
导入类:
publicclassMQTTManager{
privatestaticfinalStringTAG="MQTTManager";
publicstaticfinalStringSERVER_HOST="tcp://52.80.116.245:1883";
privateStringclientid="2df8aabfb8b6085638953664f413a446bbc";
privatestaticMQTTManagermqttManager=null;
privateMqttClientclient;
privateMqttConnectOptionsoptions;
privateContextmContext;
privateMessageHandlerCallBackcallBack;
privateMQTTManager(Contextcontext){
mContext=context;
clientid+=MqttClient.generateClientId();
}
/**
* 获取一个MQTTManager单例
* @