// Solution of MQTTHandsOnNodeJSClient, part of http://tmb.gr/mqtt // Licensed https://tamberg.mit-license.org/ // Terminal 1: $ node bot3.js // Terminal 2: $ mqtt pub -t 'chats/tamberg' -h 'test.mosquitto.org' -m '{"clientId":"tamberg", "message": "nice"}' // Terminal 1: (Output) // {"clientId":"tamberg", "message": "nice"} // {"clientId":"mqttjs_8a925bfc", "message":"not nice"} var mqtt = require('mqtt'); var client = mqtt.connect('mqtt://test.mosquitto.org/'); function toJson(clientId, message) { return '{"clientId":"' + clientId + '", "message":"' + message + '"}'; } client.on('connect', function () { client.subscribe('chats/tamberg'); }); client.on('message', function (topic, message) { console.log(message.toString()); var json = JSON.parse(message); var prefix = 'not '; var botClientId = client.options.clientId; if (botClientId != json.clientId) { client.publish('chats/tamberg', toJson(botClientId, prefix + json.message)); } });