1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package com.ruoyi.common.model;
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import java.time.LocalDateTime;
- import java.util.Map;
- /**
- * MQTT消息模型类
- *
- * <p>封装MQTT消息的各种属性,包括主题、内容、QoS等,
- * 可用于消息发布和接收场景。</p>
- *
- * @author andy
- * @version 1.0.0
- * @since 2025-06-17
- */
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- public class MqttMessage {
- /**
- * 消息主题
- */
- private String topic;
- /**
- * 消息内容
- */
- private String payload;
- /**
- * 服务质量
- * <p>0 - 最多发送一次,不保证送达</p>
- * <p>1 - 至少发送一次,确保送达但可能重复</p>
- * <p>2 - 确保仅送达一次</p>
- */
- private int qos = 1;
- /**
- * 是否为保留消息
- */
- private boolean retained = false;
- /**
- * 消息发送/接收时间
- */
- private LocalDateTime timestamp = LocalDateTime.now();
- /**
- * 消息自定义属性
- */
- private Map<String, Object> properties;
- /**
- * 带主题和内容的构造函数
- *
- * @param topic 消息主题
- * @param payload 消息内容
- */
- public MqttMessage(String topic, String payload) {
- this.topic = topic;
- this.payload = payload;
- }
- /**
- * 带主题、内容、QoS和保留标志的构造函数
- *
- * @param topic 消息主题
- * @param payload 消息内容
- * @param qos 服务质量
- * @param retained 是否保留
- */
- public MqttMessage(String topic, String payload, int qos, boolean retained) {
- this.topic = topic;
- this.payload = payload;
- this.qos = qos;
- this.retained = retained;
- }
- }
|