package com.doumee.mqtt.service;
|
|
import com.doumee.mqtt.config.MqttClientInit;
|
import com.doumee.mqtt.config.MqttConfig;
|
import lombok.Data;
|
import org.eclipse.paho.client.mqttv3.MqttCallback;
|
import org.eclipse.paho.client.mqttv3.MqttClient;
|
import org.eclipse.paho.client.mqttv3.MqttMessage;
|
|
@Data
|
public class MqttToolService {
|
/**
|
* 订阅消息,启动加载一次
|
* @param topics
|
*/
|
public static MqttClient subscribe(MqttClient clientTemp,MqttConfig config,String[] topics, MqttCallback callBack) {
|
try {
|
//订阅消息
|
int[] Qos = new int[topics.length];//0:最多一次 、1:最少一次 、2:只有一次
|
for (int i = 0; i < Qos.length; i++) {
|
Qos[i] = 1;
|
/*if(i ==2){
|
Qos[i] = 2;
|
}else{
|
Qos[i] = 1;
|
}*/
|
}
|
clientTemp = MqttClientInit.getInstance(clientTemp,config,callBack);
|
try {
|
clientTemp.subscribe(topics, Qos);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
return clientTemp;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return clientTemp;
|
}
|
public static MqttClient unsubscribe(MqttClient clientTemp,MqttConfig config,String[] topics, MqttCallback callBack) {
|
try {
|
//订阅消息
|
int[] Qos = new int[topics.length];//0:最多一次 、1:最少一次 、2:只有一次
|
for (int i = 0; i < Qos.length; i++) {
|
Qos[i] = 1;
|
/*if(i ==2){
|
Qos[i] = 2;
|
}else{
|
Qos[i] = 1;
|
}*/
|
}
|
clientTemp = MqttClientInit.getInstance(clientTemp,config,callBack);
|
try {
|
clientTemp.unsubscribe(topics);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
return clientTemp;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return clientTemp;
|
}
|
/**
|
* 消息发送
|
* @param message
|
* @param topic
|
*/
|
public static MqttClient pubMessage(MqttClient clientTemp,MqttConfig config,String message,String topic, MqttCallback callBack){
|
try {
|
MqttMessage mess = new MqttMessage();
|
mess.setQos(1);
|
mess.setRetained(false);
|
mess.setPayload(message.getBytes());
|
clientTemp = MqttClientInit.getInstance(clientTemp,config,callBack);
|
try {
|
clientTemp.publish(topic, mess);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
return clientTemp;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return clientTemp;
|
}
|
public static void main(String[] args) {
|
MqttConfig config = (new MqttConfig());
|
config.setHost("tcp://192.168.0.7:1883");
|
config.setClientid("doumee1");
|
config.setPassword("doumee@168");
|
config.setUsername("doumee");
|
config.setVersion("003");
|
MqttToolService.pubMessage(null,config,"{" +
|
" \"method\": 3," +
|
" \"dstID\" :43008827854690816," +
|
" \"msgCode\": 120," +
|
" \"timeMS\": 0," +
|
" \"data\":" +
|
" [{" +
|
" \"tag\":305," +
|
" \"cmd\":\"do_turn_off\", " +
|
" \"count\":3," +
|
" \"busAddr\":[3]" +
|
" }]" +
|
"}","/dev/MTS/98CC4D121E5A/cmd/json",null);
|
}
|
|
}
|