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)
还没有任何评论哟~
