Messages are received by processing the message event.The format is:
function (topic, message, packet) {}
Example code is shown below:
//handle incoming messages
client.on('message',function(topic, message, packet){
console.log("message is "+ message);
console.log("topic is "+ topic);
console.log("packet =" +JSON.stringify(packet));
console.log("packet retain =" +packet.retain);
});
The messages contains the text messages and the packet object contains the message as a buffer object in addition to message properties like retain flag etc as shown below:
message is {"volts":240}
topic is testtopic
packet ={"cmd":"publish","retain":false,"qos":0,"dup":false,"length":27,"topic":"testtopic","payload":{"type":"Buffer","data":[123,34,118,111,108,116,115,34,58,50,52,48,125]},"properties":{"subscriptionIdentifier":1}}
Example Code
The following code is part of the on.message() function.
Detect if message is retained.
console.log("packet retain =" +packet.retain);
if(packet.retain)
console.log("message is a retained message");
else
console.log("message is not retained message");
Extract the subscription Identifier from the message
console.log("subscription Identifier= "+packet.properties.subscriptionIdentifier)
Work with a Received JSON Payload
To work with a received JSON payload we need to first convert the payload into a JavaScript object using:
let message=JSON.parse(message);
Example our received message is
message is {“volts”:240}
to get volts we do the following
let message=JSON.parse(message); let volts=message.volts;
Because the payload may not be JSON we will need to test it. The easiest way is using a try catch sequence (ref) as shown below:
try
{
message=JSON.parse(message);
let volts=message.volts
console.log("volts="+volts);
}
catch(err)
{
console.log("not JSON");
}
Related Tutorials and resources:
- Publishing Messages using the Paho node.js MQTT Client
- Subscribing to Messages using the Paho node.js MQTT Client
- Connecting to an MQTT Broker Using the Node.js Client
- Using the Node.js MQTT Client-Starting Guide
Please rate? And use Comments to let me know more