MQTT Integration
The MQTT Connector enables the framework to interface with MQTT messaging system. The following dependency along with other HMF4J libraries imports MQTT connector:
<dependency>
<groupId>io.github.handy-messaging-framework</groupId>
<version>1.1.0</version>
<artifactId>hmf4j-mqtt-connector</artifactId>
</dependency>
The system parameter in the configuration profile should be mqtt. The supported producer and consumer properties are given below:
Producer Properties
| Property | Semantics | DataType |
|---|---|---|
| mqtt.broker.host | The hostname of the MQTT broker | String |
| mqtt.broker.port | The port number of the MQTT broker | Integer |
| mqtt.qos | Quality of Service level for message delivery | Integer |
| mqtt.broker.username | Username for the MQTT broker (if authentication is required) | String |
| mqtt.broker.password | Password for the MQTT broker (if authentication is required) | String |
| mqtt.clean_session.flag | Whether to start a clean session each time the client connects to the broker | Boolean |
| mqtt.automatic_reconnect.flag | Whether the client should automatically attempt to reconnect to the broker if it loses connection | Boolean |
| connection.timeout.sec | The maximum time in seconds to wait for a connection to be established with the broker | Integer |
Consumer Properties
| Property | Semantics | DataType |
|---|---|---|
| mqtt.broker.host | The hostname of the MQTT broker | String |
| mqtt.broker.port | The port number of the MQTT broker | Integer |
| mqtt.broker.username | Username for the MQTT broker (if authentication is required) | String |
| mqtt.broker.password | Password for the MQTT broker (if authentication is required) | String |
| mqtt.clean_session.flag | Whether to start a clean session each time the client connects to the broker | Boolean |
| mqtt.automatic_reconnect.flag | Whether the client should automatically attempt to reconnect to the broker if it loses connection | Boolean |
| connection.timeout.sec | The maximum time in seconds to wait for a connection to be established with the broker | Integer |
| max.messages.per.batch | Mandatory Handy-Messaging Framework’s dispatcher property | Integer |
| max.poll.duration.millis | Mandatory Handy-Messaging Framework’s dispatcher property | Integer |
A sample configuration file illustrating the producer and consumer properties is given below:
hmf4j:
profiles:
- profileName: mqtt_profile
system: mqtt
consumer:
properties:
mqtt.broker.host: "localhost"
mqtt.broker.port: 1883
mqtt.clean_session.flag: true
mqtt.automatic_reconnect.flag: true
connection.timeout.sec: 10
max.messages.per.batch: 3
max.poll.duration.millis: 15000
producer:
properties:
mqtt.broker.host: "localhost"
mqtt.broker.port: 1883
mqtt.qos: 1
mqtt.clean_session.flag: true
mqtt.automatic_reconnect.flag: true
connection.timeout.sec: 10