MQTT Inbound Endpoint¶
Introduction¶
MQ Telemetry Transport (MQTT) is a lightweight broker-based publish/subscribe messaging protocol, designed to be open, simple, lightweight and easy to implement. These characteristics make it ideal for use in constrained environments:
- Where the network is expensive, has low bandwidth, or is unreliable.
- When running on an embedded device with limited processor or memory resources.
Syntax¶
<inboundEndpoint xmlns="http://ws.apache.org/ns/synapse" name="Test" sequence="TestIn" onError="fault" protocol="mqtt" suspend="false">
<parameters>
<parameter name="sequential">true</parameter>
<parameter name="mqtt.connection.factory">mqttFactory</parameter>
<parameter name="mqtt.server.host.name">localhost</parameter>
<parameter name="mqtt.server.port">1883</parameter>
<parameter name="mqtt.topic.name">ei.test2</parameter>
<parameter name="mqtt.subscription.qos">2</parameter>
<parameter name="content.type">application/xml</parameter>
<parameter name="mqtt.session.clean">false</parameter>
<parameter name="mqtt.ssl.enable">false</parameter>
<parameter name="mqtt.subscription.username">client</parameter>
<parameter name="mqtt.subscription.password">e13</parameter>
<parameter name="mqtt.temporary.store.directory">m1y</parameter>
<parameter name="mqtt.reconnection.interval">5</parameter>
</parameters>
</inboundEndpoint>
Properties¶
Listed below are the properties used for creating an MQTT inbound endpoint.
Required Properties¶
The following properties are required when creating a MQTT inbound endpoint.
Property | Description |
---|---|
mqtt.connection.factory | Name of the connection factory. |
mqtt.server.host.name | Address of the message broker (eg., localhost). |
mqtt.server.port | Port of the message broker (e.g., 1883). |
mqtt.topic.name | MQTT topic to which the message should be published. |
content.type | The content type of the message, i.e., XML or JSON) |
coordination | This parameter is only applicable in a clustered environment. In a cluster environment an inbound endpoint will only be executed in worker nodes. If this parameter is set to true in a clustered environment, the inbound will only be executed in a single worker node. Once the running worker node is down, the inbound will start on another available worker node in the cluster. By default, this setting is true .
|
sequential | The behaviour when executing the given sequence. |
sequential | The behavior when executing the given sequence. When set as true , mediation will happen within the same thread. When set as false , the mediation engine will use the inbound thread pool. The default thread pool values can be found in the MI_HOME/conf/deployment.toml file, under the `[mediation]` section. The default setting is true .
|
Suspend |
If the inbound listener should pause when accepting incoming requests, set this to true . If the inbound listener should not pause when accepting incoming requests, set this to false .
|
Optional Properties¶
The following optional properties can be configured when creating an MQTT inbound endpoint.
Property | Description |
---|---|
mqtt.subscription.qos | The quality of service level that need to be maintained with the subscription. The quality of service level can be either 0,1 or 2. 0 - Specifying this level ensures that the message delivery is efficient. However, specifying this level does not guarantee that the message will be delivered to its recipient. 1 - Specifying this level ensures that the message is delivered at least once, but this can lead to messages being duplicated. 2 - This is the highest level of quality of service. Specifying this guarantees that the message is delivered and that it is delivered only once. |
mqtt.client.id | The id of the client. |
mqtt.session.clean | Whether the client and server should remember the state across restarts and reconnects. |
mqtt.ssl.enable | Whether to use TCP connection or SSL connection. |
mqtt.subscription.username | The username for the subscription. |
mqtt.subscription.password | The password for the subscription. |
mqtt.temporary.store.directory | Path of the directory to be used as the persistent data store for quality of service purposes. |
mqtt.reconnection.interval | The retry interval to reconnect to the MQTT server. |