MQTT

1、在配置文件里面设置好MQTT参数

[MQTT]

#是否开启MQTT服务
mq_enable=0

#MQTT服务器地址
mq_host=localhost:61613

#MQTT 客户端唯一ID
mq_id=jkas1121

#MQTT登录用户名
mq_user=admin

#MQTT登录密码
mq_pass=123456

#是否开启断开自动重连
mq_autoreconnect=1

#是否清除session
mq_cleansession=1

#连接超时
mq_timeout=10

#保持连接心跳时间
mq_keepalive=20

#默认订阅主题,中括号内容可以省略,格式为:主题名称1[:qos],主题名称2[:qos]
mq_subtopics=test2:2,test3

#收到收到消息回调类,必须继承于JkasMQBack
mq_callbackclass=test.z.mqtt.Test

#是否启用安全通信

mq_ssl=0

#CA根证书绝对路径
mq_cafile=

#公钥证书绝对路径
mq_crtfile=

#私钥证书绝对路径
mq_keyfile=

#证书密码
mq_keypass=

 

2、常用方法

String mqGetId()//获取客户端ID
boolean mqSendMsg(String topic,String msg)//向指定主题发送消息

boolean mqSendMsg(String topic,String msg,int qos)//向指定主题发送消息,qos 0:至少0次收到,1:至少1次收到 2:刚好1次收到
boolean mqSubTopics(String[] topics,int[] qos)//批量订阅主题,qos 0:至少0次收到,1:至少1次收到 2:刚好1次收到
boolean mqSubTopics(String[] topics)//批量订阅主题,qos默认为0
boolean mqSubTopic(String topic,int qos)//单条订单主题,指定qos
boolean mqSubTopic(String topic)//单条订阅主题,qos默认为0

boolean mqUnSubTopics(String[] topics)//批量取消订阅主题

boolean mqUnSubTopic(String topic)//单条取消订阅主题

 

3、关于回调类

该类必须继承于JkasMQBack,并覆盖相应方法,如下示例:

package test.z.mqtt;
import org.jkas.core.JkasMQBack;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
public class Test extends JkasMQBack
{
  public void connectionLost(Throwable arg) {//连接断开
  }

  public void deliveryComplete(IMqttDeliveryToken token) {//发布完成
  }

  public void messageArrived(String topic, MqttMessage msg) throws Exception {//收到消息
  }
}