i have an application that connected to a topic on MQTT broker server, i connect using my javascript code that works over web socket port. my problem that when i put my application on webserver, i keep connect and send messages all time .. never stop that . how can solve my code to connect just once and never connect again unless i got disconnected. here is my code.
client = new Paho.MQTT.Client("m23.cloudmqtt.com", 38788,"clientId-O8R8jUxaRM");
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
var options = {
useSSL: true,
userName: "peelmimp",
password: "iold2UAoIs8T",
onSuccess:onConnect,
onFailure:doFail
}
client.connect(options);
// called when the client connects
function onConnect() {
// Once a connection has been made, make a subscription and send a message.
console.log("onConnect");
client.subscribe("sensor8");
message = new Paho.MQTT.Message(" CloudMQTT");
message.destinationName = "sensor8";
client.send(message);
}
function doFail(e){
console.log(e);
}
// called when the client loses its connection
function onConnectionLost(responseObject) {
if (responseObject.errorCode !== 0) {
console.log("onConnectionLost:"+responseObject.errorMessage);
client.connect(options);
}
}
// called when a message arrives
function onMessageArrived(message) {
console.log("onMessageArrived:"+message.payloadString);
var x = message.payloadString;
if(x == 1){ //park spot number 1
document.getElementById("park1").style.backgroundColor = "orange";
document.getElementById("park1p").style.fontSize="40px";
document.getElementById("park1p").innerHTML="A car is going to park at spot number 1";
}
if(x == 2){ //car parked at park1
document.getElementById("park1").style.backgroundColor = "red";
document.getElementById("park1p").innerHTML="spot number 1 is not available";
}
if(x == 3){ //car left park 1 and it is available
document.getElementById("park1").style.backgroundColor = "green";
document.getElementById("park1p").innerHTML="spot number 1 is available";
}
if(x == 4){ //park spot number 2
document.getElementById("park2").style.backgroundColor = "orange";
document.getElementById("park2p").style.fontSize="40px";
document.getElementById("park2p").innerHTML="A car is going to park at spot number 2";
}
if(x == 5){ //car parked at park2
document.getElementById("park2").style.backgroundColor = "red";
document.getElementById("park2p").innerHTML="spot number 2 is not available";
}
if(x == 6){ //car left park 2 and it is available
document.getElementById("park2").style.backgroundColor = "green";
document.getElementById("park2p").innerHTML="spot number 2 is available";
}
if(x == 7){ //park spot number 3
document.getElementById("park3").style.backgroundColor = "orange";
document.getElementById("park3p").style.fontSize="40px";
document.getElementById("park3p").innerHTML="A car is going to park at spot number 3";
}
if(x == 8){ //car parked at park3
document.getElementById("park3").style.backgroundColor = "red";
document.getElementById("park3p").innerHTML="spot number 3 is not available";
}
if(x == 9){ //car left park 3 and it is available
document.getElementById("park3").style.backgroundColor = "green";
document.getElementById("park3p").innerHTML="spot number 3 is available";
}
if(x == 10){ //park spot number 4
document.getElementById("park4").style.backgroundColor = "orange";
document.getElementById("park4p").style.fontSize="40px";
document.getElementById("park4p").innerHTML="A car is going to park at spot number 4";
}
if(x == 11){ //car parked at park4
document.getElementById("park4").style.backgroundColor = "red";
document.getElementById("park4p").innerHTML="spot number 4 is not available";
}
if(x == 12){ //car left park 4 and it is available
document.getElementById("park4").style.backgroundColor = "green";
document.getElementById("park4p").innerHTML="spot number 4 is available";
}
}