The universal MQTT message queue adapter for @quatrain/queue. Supports Eclipse Mosquitto, EMQX, HiveMQ, VerneMQ, AWS IoT Core, and RabbitMQ MQTT.
@quatrain/queue-mqtt provides high-throughput, non-blocking asynchronous message publishing and subscription over standard MQTT 3.1.1 and 5.0 brokers.
AbstractQueueAdapter from @quatrain/queue.+) and multi-level (#) topic wildcards.MosquittoQueueAdapter convenience alias.npm install @quatrain/queue-mqtt mqtt
# or
bun add @quatrain/queue-mqtt mqtt
import { Queue } from '@quatrain/queue'
import { MqttQueueAdapter } from '@quatrain/queue-mqtt'
// 1. Initialize and register the MQTT adapter
const mqttAdapter = new MqttQueueAdapter({
config: {
brokerUrl: 'tcp://127.0.0.1:1883',
clientId: 'worker-1',
},
})
Queue.addAdapter('default', mqttAdapter, true)
// 2. Subscribe to topics with wildcards
const queue = Queue.getAdapter()
queue.listen('application/+/device/+/event/+', (message, topic) => {
console.log(`Received message on ${topic}:`, message)
})
// 3. Publish messages
await queue.send({ temperature: 24.5 }, 'sensors/probe-1/temperature')
For detailed guides, see HOWTO.md.
AGPL-3.0-only