@quatrain/queue-mqtt
📦 API Reference: Detailed TypeScript documentation, classes, interfaces, and methods are available in the TypeDoc API Reference for @quatrain/queue-mqtt ↗.
The universal MQTT message queue adapter for @quatrain/queue. Supports Eclipse Mosquitto, EMQX, HiveMQ, VerneMQ, AWS IoT Core, and RabbitMQ MQTT.
🧭 Introduction
@quatrain/queue-mqtt provides high-throughput, non-blocking asynchronous message publishing and subscription over standard MQTT 3.1.1 and 5.0 brokers.
🚀 Key Features
- Extends
AbstractQueueAdapterfrom@quatrain/queue. - Automatic reconnection with exponential backoff and persistent subscription recovery.
- Full support for MQTT single-level (
+) and multi-level (#) topic wildcards. - Built-in
MosquittoQueueAdapterconvenience alias. - Quality of Service (QoS 0, 1, 2) configuration.
📦 Installation
npm install @quatrain/queue-mqtt mqtt
# or
bun add @quatrain/queue-mqtt mqtt🛠️ Quick Start
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.
📄 License
AGPL-3.0-only