Reputation: 1
My problem is the following: I have to receive from mqtt with IBM Watson Iot a message with a subscribe function but in the message variable hasn't set the value that would be set with a callback function onArrivedMessage. What can I do to fix the problem? This is my code in javascript:
function connect() {
var hostname = [...omissis...];
var port = useSSL ? mqttPortSecure : mqttPort;
var clientId = [...omissis...];
var lastWillTopic = topiqReq;
var lastWillMessageVal = "";
var lastWillQos = 0;
var lastWillRetain = false;
password = [...omissis...];
client = new Paho.MQTT.Client(hostname, port, clientId);
console.log("Connecting to Server: [Host: ", hostname, ", Port: ", port, ", Path: ", client.path, ", ID: ", clientId, "]");
// set callback handlers
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
var options = {
invocationContext: { host: hostname, port: port, path: client.path, clientId: clientId },
timeout: 100,
keepAliveInterval: 100,
cleanSession: true,
password: password,
useSSL: useSSL,
onSuccess: onConnectSuccess,
onFailure: onConnectFailure
};
if (lastWillTopic.length > 0) {
var lastWillMessage = new Paho.MQTT.Message(lastWillMessageVal);
lastWillMessage.destinationName = lastWillTopic;
lastWillMessage.qos = lastWillQos;
lastWillMessage.retained = lastWillRetain;
options.willMessage = lastWillMessage;
}
// connect the client
client.connect(options);
changeConnectionStatusImage("../src_mqtt/public/images/connecting.svg");
document.getElementById("connection").innerHTML = "Connecting";
console.log("Connecting device to IoT Foundation...");
}
connect();
}
function onConnectSuccess(){
// The device connected successfully
console.log("Connected Successfully!");
isConnected = true;
changeConnectionStatusImage("../src_mqtt/public/images/connected.svg");
document.getElementById("connection").innerHTML = "Connected";
subscribe();
}
function subscribe() {
var topic = topicReq;
var qos = "0";
console.log("INFO", "Subscribing to: [Topic: ", topic, ", QoS: ", qos, "]");
client.subscribe(topic, { qos: Number(qos) });
}
// called when a message arrives
function onMessageArrived(message) {
console.log("onMessageArrived:"+message.payloadString);
client.disconnect();
}
Upvotes: 0
Views: 87