MQTTClient.publish()
Overview
Publishes a message to a connected MQTT broker.
Added in version 2.1.13
Format
var mqttClient = new MQTTClient(options);
//...
mqttClient.publish(message, onComplete, onError);
Value | Description | Type | Required | Notes |
---|---|---|---|---|
message | The message object to publish. | Object | Required | See Message object properties below. |
onComplete | A callback function that is called asynchronously if the publish completes. | Function | Optional | When called, the first parameter is a Complete object as described below. |
onError | A callback function that is called asynchronously if the publish errors. | Function | Optional | When called, the first parameter is an Error object as described below. |
Message object properties
Value | Description | Type | Required | Notes |
---|---|---|---|---|
topic | The topic for the message. | String | Required | |
payload | A string or ArrayBuffer containing the payload for the message. | String or ArrayBuffer | Required | |
qos | The quality of service for the message. | Integer | Optional |
Possible values: 0 – at most once, where messages are delivered according to the best efforts of the operating environment. Message loss can occur. 1 – at least once, where messages are assured to arrive but duplicates can occur. 2 – exactly once, where messages are assured to arrive exactly once. |
retain | A flag indicating if this message is a retained message | Boolean |
Complete object properties
Value | Description | Type |
Notes |
---|---|---|---|
result | A result code. | Integer |
Possible values: •0 – Success •16 – No matching subscribers •128 – Unspecified error •131 – Implementation specific error •135 – Not authorized •144 – Topic name invalid •145 – Packet identifier in use •151 – Quota exceeded •153 – Payload format invalid |
Error object properties
Value | Description | Type |
Notes |
---|---|---|---|
message | A message that describes the failure. | String | May be undefined. |
type | A category for the type of failure. | String |
Example
/* Connect, send a message with QoS 1 (at least once), and disconnect
*/
mqttClient = new MQTTClient({
broker: "mqtt://mymqtt.example.com"
});
mqttClient.connect(function() {
if(mqttClient.connected) {
mqttClient.publish({
topic: "this/is/a/test",
payload: "tada: " + Date(),
qos: 1
}, function(complete) {
Logger.info("publish complete with code: " + complete.result);
mqttClient.disconnect();
}, function(error) {
Logger.info("error on publish: " + (error.reason || "unknown"));
mqttClient.disconnect();
});
}
});