package com.doumee.core.mqtt.service; import com.doumee.core.mqtt.config.MqttClientInit; import com.doumee.core.mqtt.config.MqttConfig; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; @Service public class MqttToolService { @Autowired private MqttConfig config; @Autowired private MqttPushCallback callBack ; /** * 订阅消息,启动加载一次 * @param topics */ public void subscribe(String[] topics) { 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; }*/ } MqttClientInit.getSubInstance(config,callBack).subscribe(topics, Qos); MqttClientInit.isNeedReSub = false; } catch (Exception e) { e.printStackTrace(); } } /** * 消息发送 * @param message * @param topic */ public int pubMessage(String message,String topic){ MqttMessage mess = new MqttMessage(); mess.setQos(1); mess.setRetained(false); mess.setPayload(message.getBytes()); try { MqttClientInit.getInstance(config).publish(topic, mess); return 0; } catch (Exception e) { //LOGGER.error(e.getLocalizedMessage()); } return 1; } public static void main(String[] args) { MqttToolService client1 = new MqttToolService(); client1.pubMessage("你好啊","test"); } }