package com.ruoyi.common.model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; import java.util.Map; /** * MQTT消息模型类 * *

封装MQTT消息的各种属性,包括主题、内容、QoS等, * 可用于消息发布和接收场景。

* * @author andy * @version 1.0.0 * @since 2025-06-17 */ @Data @NoArgsConstructor @AllArgsConstructor public class MqttMessage { /** * 消息主题 */ private String topic; /** * 消息内容 */ private String payload; /** * 服务质量 *

0 - 最多发送一次,不保证送达

*

1 - 至少发送一次,确保送达但可能重复

*

2 - 确保仅送达一次

*/ private int qos = 1; /** * 是否为保留消息 */ private boolean retained = false; /** * 消息发送/接收时间 */ private LocalDateTime timestamp = LocalDateTime.now(); /** * 消息自定义属性 */ private Map 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; } }