MQTTClient.subscribe()
Overview
Subscribes to a topic filter on a connected MQTT broker.
Added in version 2.1.13
Format
var mqttClient = new MQTTClient(options);
//...
mqttClient.subscribe(subscription, onComplete, onError);
Value | Description | Type | Required | Notes |
---|---|---|---|---|
subscription | An object or a string describing the subscription. | String or Object | Required | If a string then the string represents the filter. Subscription object properties are described below. |
onComplete | A callback function that is called asynchronously if the subscribe 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 subscribe errors. | Function | Optional | When called, the first parameter is an Error object as described below. |
Subscription object properties
Value | Description | Type | Required | Notes |
---|---|---|---|---|
filter | The topic filter. | String | Required | May contain + symbol to represent a single intermediate level wildcard. May end with the # symbol to indicate a match with any further levels. |
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. |
callback | A callback function that is called when a message matching this filter is received. | Function | Optional | The onMessage callback for the MQTTClient is always called first if it exists, followed by any matching filter subscriptions specified here. When called, the first parameter is a Message object as described below. |
Message object properties
Value | Description | Type | Notes |
---|---|---|---|
topic | The topic for the message. | String | |
payload | An ArrayBuffer containing the payload for the message. | ArrayBuffer | |
qos | The quality of service for the message. | Integer |
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 | |
payloadAsString | The payload bytes decoded as a UTF-8 string. | String |
Complete object properties
Value | Description | Type |
Notes |
---|---|---|---|
result | A result code. | Integer |
Possible values: •0 – Granted QoS 0 •1 – Granted QoS 1 •2 – Granted QoS 2 •128 – Unspecified error •131 – Implementation specific error •135 – Not authorized •143 – Topic filter invalid •145 – Packet identifier in use •151 – Quota exceeded •158 – Shared subscriptions not supported •161 – Subscription identifiers not supported •162 – Wildcard subscriptions not supported |
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, then subscribe. Decode the binary data as a 32 bit unsigned integer, and log it.
*/
mqttClient = new MQTTClient({
broker: "mqtt://mymqtt.example.com"
});
mqttClient.connect(function() {
if(mqttClient.connected) {
mqttClient.subscribe({
filter: "this/+/+/test",
callback: function(message) {
var uintBuffer = new Uint32Array(message.payload);
var firstInt = uintBuffer[0];
Logger.info("got the number: " + firstInt);
}
}, function (complete) {
Logger.debug("successfully subscribed: " + complete.result);
}, function (error) {
Logger.warning("failed subscribing: " + (error.message || error.type));
});
}
});