MQTT event publisher is used to send events to a MQTT broker based on the configurations you provide. You can configure it with XML, JSON, and text output mapping types.
Prerequisites
Follow the steps below before starting the MQTT event publisher configuration.
- Download MQTT client library (
mqtt-client-0.4.0.jar
). - Add the file to
<PRODUCT_HOME>/repository/components/lib/
directory.
Creating a MQTT event publisher
For instructions on creating a MQTT event publisher, see Creating Alerts.
Configuring adapter properties
Specify the Static and Dynamic Adapter Properties, when creating a MQTT event publisher using the management console as shown below.
After entering the above adapter properties, select the Message Format which you want to apply on the published events . Also, click Advanced to define custom output mappings based on the Message Format you selected. For more information on custom output mapping types, see Output Mapping Types.
You can also d efine the respective adapter properties of the event publisher based on the transport type within the <to>
element of the event publisher configuration in the <PRODUCT_HOME>/repository/deployment/server/eventpublishers/
directory as follows.
<eventPublisher name="MQTTOutputEventAdapter" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher"> ...................... <to eventAdapterType="mqtt"> <property name="topic">sensordata</property> <property name="username">mqtt-user</property> <property name="qos">1</property> <property name="password">mqtt-password</property> <property name="clientId">test-client</property> <property name="url">tcp://localhost:1883</property> <property name="cleanSession">true</property> </to> </eventPublisher>
The above adapter properties are described below.
Static adapter properties
Adapter Property | Description | Configuration file property | Example |
---|---|---|---|
Client Id | Client identifier is used by the server to identify a client when it reconnects, It used for durable subscriptions or reliable delivery of messages is required | clientId | test-client |
Broker Url | MQTT broker URL. The same URL can be used f or WSO2 MB when offset=0 | url | tcp://localhost:1883 |
Username | Username of the broker | username | mqtt-user |
Password | Password of the broker | password | mqtt-password |
Clean Session | Whether to persist topic subscriptions and acknowledge positions across client sessions | cleanSession | true/false |
Quality of Service | Quality of service for delivering messages between clients and servers. There are three QoS levels in MQTT are as follows.
| qos | 0,1,2 |
Dynamic adapter properties
Adapter Property | Description | Configuration file property | Example |
---|---|---|---|
Topic | The topic that will be used to send messages to MQTT broker. | topic | sensordata |