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); } }