doum
6 天以前 5e59a6a3b10c0990f494b5a20e1102fd79b0db1b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
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);
    }
 
}