Advertisement

Mqtt发送消息

阅读量:

controller层

复制代码
    @Autowired
    private GeelyMqttClient geelyMqttClient;
    
    //mqtt
    String mqttRequestJson = MqttRequestFactory.getMqttRequestJson("发送的名称", 发送的数据, "编号");
    geelyMqttClient.publish("对接的名称", mqttRequestJson, GeelyMqttClient.QosEnum.QoS0,false);
    
    
    
      
      
      
      
      
      
      
    
    代码解释

MqttRequestFactory

复制代码
    import com.alibaba.fastjson.JSON;
    
    import java.util.Date;
    
    /** * @Description: MqttRequestFactory
     * @Author: WBN
     * @CreateDate: 2021/5/11 1:08
     * @UpdateUser: WBN
     * @UpdateDate: 2021/5/11 1:08
     * @UpdateRemark: 修改内容
     * @Version: 1.0
     */
    public final class MqttRequestFactory {
    /** *
     * @param methodName 方法名称
     * @param body 消息体
     * @param deviceNo 设备编号
     * @return MqttRequest
     */
    public static MqttRequest getMqttRequest(String methodName, Object body, String deviceNo) {
        MqttRequest mqttRequest = new MqttRequest();
        MqttHeaders headers = new MqttHeaders();
        headers.setMsgId(String.valueOf(System.currentTimeMillis()));
        headers.setVersion("1.0");
        headers.setTs(new Date());
        headers.setMethod(methodName);
        headers.setDeviceNo(deviceNo);
        mqttRequest.setHeaders(headers);
        mqttRequest.setBody(body);
        return mqttRequest;
    }
    
    /** *
     * @param methodName methodName
     * @param body  body
     * @param deviceNo deviceNo
     * @return String
     */
    public static String getMqttRequestJson(String methodName, Object body, String deviceNo) {
        MqttRequest request = MqttRequestFactory.getMqttRequest(methodName, body, deviceNo);
        return JSON.toJSONString(request);
    }
    
    /** *
     * @param methodName methodName
     * @param stationNo stationNo
     * @return MqttRequest
     */
    public static MqttRequest getCloudMqttRequest(String methodName, String stationNo) {
        MqttRequest mqttRequest = new MqttRequest();
        CloudMqttHeaders headers = new CloudMqttHeaders();
        headers.setMsgId(String.valueOf(System.currentTimeMillis()));
        headers.setVersion("1.0");
        headers.setTs(new Date());
        headers.setStationNo(stationNo);
        mqttRequest.setHeaders(headers);
        return mqttRequest;
    }
    }
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释

GeelyMqttClient

复制代码
    import java.util.Map;
    
    /** * ClassName GeelyMqttClient
     * Description
     * Create by Bingnan.Wang
     * Date 2021/4/21 16:56
     */
    public interface GeelyMqttClient {
    void connect(String username, String password);
    
    void reConnect();
    
    void disConnect();
    
    void publish(String topic, String msg, QosEnum qos, boolean retain);
    
    void publish(String topic, byte[] bytes, QosEnum qos, boolean retain);
    
    void subscribe(String topicFilter, QosEnum qos);
    
    void subscribe(Map<String, QosEnum> map);
    
    enum QosEnum {
        QoS0(0), QoS1(1), QoS2(2);
    
        private final int value;
    
        QosEnum(int value) {
            this.value = value;
        }
    
        public int value() {
            return this.value;
        }
    }
    }
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释

全部评论 (0)

还没有任何评论哟~