Mqtt Message
data class MqttMessage(val topic: String, val payload: ByteString, val qos: QoS = QoS.AT_MOST_ONCE, val retain: Boolean = false, val properties: PublishProperties = PublishProperties())
Represents a received or outgoing MQTT message with full MQTT 5.0 properties.
This is the primary data type flowing through MqttClient.messages and passed to MqttClient.publish. Uses ByteString for the payload, guaranteeing immutability at the type level — payloads can be safely shared across coroutines.
Example
// Publish a message
client.publish(MqttMessage(
topic = "sensors/temperature",
payload = ByteString("22.5".encodeToByteArray()),
qos = QoS.AT_LEAST_ONCE,
))
// Receive messages
client.messages.collect { msg ->
println("${msg.topic}: ${msg.payload}")
}Content copied to clipboard
Constructors
Link copied to clipboard
constructor(topic: String, payload: ByteString, qos: QoS = QoS.AT_MOST_ONCE, retain: Boolean = false, properties: PublishProperties = PublishProperties())
constructor(topic: String, payload: ByteArray, qos: QoS = QoS.AT_MOST_ONCE, retain: Boolean = false, properties: PublishProperties = PublishProperties())
Convenience constructor accepting raw bytes.