THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Wiki Markup |
---|
h2. MQTT Component
The *mqtt:* component is used for communicating with [MQTT|http://mqtt.org] 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:xml}
<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>
{code}
h3. URI format
{code}
mqtt://name[?options]
{code}
Where *name* is the name you want to assign the component.
h3. Options
{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&...}}
h3. Samples
Sending messages:
{code}
from("direct:foo").to("mqtt:cheese?publishTopicName=test.mqtt.topic");
{code}
Consuming messages:
{code}
from("mqtt:bar?subscribeTopicName=test.mqtt.topic").transform(body().convertToString()).to("mock:result")
{code}
{include:Endpoint}
|