MQTT Component
Available as of Camel 2.10
The mqtt: component is used for communicating with MQTT compliant message brokers, like Apache ActiveMQ or Mosquitto
Camel will poll the feed every 60 seconds by default.
Note: The component currently only supports polling (consuming) feeds.
Maven users will need to add the following dependency to their pom.xml
for this component:
Code Block | ||||
---|---|---|---|---|
| ||||
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-mqtt</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency> |
URI format
Code Block |
---|
mqtt://name[?options] |
Where name is the name you want to assign the component.
Options
Wiki Markup |
---|
{div:class=confluenceTableSmall} || Property || Default || Description || | {{host}} | {{tcp://127.0.0.1:1883}} | The URI of the MQTT broker to connect too - this component also supports SSL - e.g. _ssl://127.0.0.1:8883_| | {{localAddress}} | | The local InetAddress and port to use | | {{connectAttemptsMax}} | {{-1}} | The maximum number of attempts to establish an initial connection - *_-1_* in infinite. | | {{reconnectAttemptsMax}} | {{-1}} | The maximum number of attempts to re-establish a connection after failure - *_-1_* in infinite. | | {{reconnectDelay}} | {{10}} | The time in milliseconds between attempts to reestablish an initial or failed connection | | {{reconnectBackOffMultiplier}} | {{2.0}} | The multiplier to use to the delay between connection attempts for successive failed connection attempts | | {{reconnectDelayMax}} | {{30000}} | The maximum time in milliseconds between a new attempt to establish a connection. So even using the reconnectBackOffMultiplier, this property will define the maximum delay before another connection attempt to the MQTT broker | | {{QoS}} | {{AtLeastOnce}} | The MQTT Quality of Service to use for message exchanges. It can be one of *AtMostOnce*, *AtLeastOnce* or *ExactlyOnce* | | {{subscribeTopicName}} | | The name of the Topic to subscribe to for messages | | {{publishTopicName}} | {{_camel/mqtt/test_}} | The default Topic to publish messages on | | {{byDefaultRetain}} | {{false}} | The default retain policy to be used on messages sent to the MQTT broker| | {{mqttTopicPropertyName}} | {{_MQTTTopicPropertyName+}} | The property name to look for on an Exchange for an individual published message. If this is set - the name will be used as the Topic to publish a message to the MQTT message broker. | | {{mqttRetainPropertyName}} | {{MQTTRetain}} | The property name to look for on an Exchange for an individual published message. If this is set (expects a Boolean value) - then the retain property will be set on the message sent to the MQTT message broker. | | {{mqttQosPropertyName}} | {{MQTTQos}} | The property name to look for on an Exchange for an individual published message. If this is set (one of *AtMostOnce*, *AtLeastOnce* or *ExactlyOnce* ) - then that QoS will be set on the message sent to the MQTT message broker. | | {{connectWaitInSeconds}} | {{10}} | Delay in seconds the Component will wait for a connection to be established to the MQTT broker | | {{disconnectWaitInSeconds}} | {{5}} |the number of seconds the Component will wait for a valid disconnect on stop() from the MQTT broker | | {{sendWaitInSeconds}} | {{5}} | The maximum time the Component will wait for a receipt from the MQTT broker to acknowledge a published message before throwing an exception| {div} |
You can append query options to the URI in the following format, ?option=value&option=value&...
Samples
Sending messages:
Code Block |
---|
from("direct:foo").to("mqtt:cheese?publishTopicName=test.mqtt.topic"); |
Consuming messages:
Code Block |
---|
from("mqtt:bar?subscribeTopicName=test.mqtt.topic").transform(body().convertToString()).to("mock:result") |
Include Page | ||||
---|---|---|---|---|
|