Salta ai contenuti

Connettore MQTT v5

Il connettore MQTT v5 abilita la messaggistica publish/subscribe utilizzando il protocollo MQTT 5.0, aggiungendo sottoscrizioni condivise, user properties e message expiry oltre a MQTT v3.

Tipi Connettore:

  • MqttV5Reader - Sottoscrivi a topic MQTT 5.0
  • MqttV5Writer - Pubblica su topic MQTT 5.0

Per broker e client MQTT 3.1.1, utilizza il connettore MQTT v3.

Sottoscrivi a un topic:

{
"type": "MqttV5Reader",
"config": {
"endpoint": "mqtt://localhost:1883",
"topic": "sensors/temperature",
"qos": 1,
"clientId": "meddle-v5-reader"
}
}
{
"type": "MqttV5Reader",
"config": {
"endpoint": "mqtts://mqtt.example.com:8883",
"topic": "factory/sensors/#",
"qos": 1,
"clientId": "meddle-v5-reader",
"username": "mqtt_user",
"password": "mqtt_password"
}
}

Distribuisci messaggi tra più reader utilizzando sharedGroup. Il connettore si sottoscrive a $share/<group>/<topic> e il broker bilancia il carico delle consegne tra i membri:

{
"type": "MqttV5Reader",
"config": {
"endpoint": "mqtt://broker.example.com:1883",
"topic": "factory/events",
"qos": 1,
"clientId": "meddle-v5-reader-1",
"sharedGroup": "meddle-workers"
}
}

Pubblica su un topic:

{
"type": "MqttV5Writer",
"config": {
"endpoint": "mqtt://localhost:1883",
"topic": "data/output",
"qos": 1,
"clientId": "meddle-v5-writer"
}
}
{
"type": "MqttV5Writer",
"config": {
"endpoint": "mqtts://mqtt.example.com:8883",
"topic": "devices/state",
"qos": 1,
"clientId": "meddle-v5-writer",
"username": "mqtt_user",
"password": "mqtt_password",
"retain": true,
"messageExpiry": 3600,
"userProperties": {
"source": "meddle",
"schema": "v1"
}
}
}
  • endpoint: URL del broker con schema (mqtt://host:port o mqtts://host:port)
  • topic: Topic per sottoscrizione o pubblicazione (Reader supporta wildcard + e #)
  • qos: Quality of Service: 0, 1, o 2
  • clientId: (Opzionale) Identificatore client
  • username: (Opzionale) Username MQTT
  • password: (Opzionale) Password MQTT
  • sharedGroup: (Reader) Gruppo di sottoscrizione condivisa per bilanciamento di carico
  • userProperties: Metadati chiave/valore allegati ai messaggi
  • retain: (Writer) Il broker memorizza l’ultimo messaggio e lo consegna ai nuovi sottoscrittori
  • messageExpiry: (Writer) Intervallo di scadenza del messaggio in secondi
  • 0: Al massimo una volta (fire and forget)
  • 1: Almeno una volta (consegna riconosciuta)
  • 2: Esattamente una volta (consegna assicurata)
  • Sottoscrizioni condivise (sharedGroup) consentono a più sottoscrittori di consumare un singolo topic con bilanciamento di carico lato broker.
  • User properties trasportano metadati chiave/valore arbitrari per messaggio.
  • Message expiry elimina i messaggi non consegnati dopo l’intervallo configurato.
  • Reason code su connect, subscribe e publish forniscono una semantica di errore più ricca gestita dal client paho sottostante.
  • + - Wildcard di singolo livello (sensors/+/temperature)
  • # - Wildcard multi-livello (sensors/#)
  • MQTT v3 - Connettore MQTT 3.1.1 classico
  • AMQP - Alternativa pub/sub RabbitMQ
  • NATS - Alternativa pub/sub cloud-native