mqtt - websocket and cloudmqtt, code example not working -
is possible work websockets , cloudmqtt? have following code nothing working. first use mqttw31.js paho , in host file define connection details.
src="js/mqttws31.js" type="text/javascript"> src="js/host.js" type="text/javascript"> var mqtt; var reconnecttimeout = 2000; function mqttconnect() { mqtt = new paho.mqtt.client( host, port, "web_" + parseint(math.random() * 100, 10)); var options = { timeout: 3, usessl: usetls, cleansession: cleansession, onsuccess: onconnect, onfailure: function (message) { $('#status').val("connection failed: " + message.errormessage + "retrying"); settimeout(mqttconnect, reconnecttimeout); } }; mqtt.onconnectionlost = onconnectionlost; mqtt.onmessagearrived = onmessagearrived; if (username != null) { options.username = username; options.password = password; } console.log("host="+ host + ", port=" + port + " tls = " + usetls + " username=" + username + " password=" + password); mqtt.connect(options); } function onconnect() { $('#status').val('connected ' + host + ':' + port); // connection succeeded; subscribe our topic mqtt.subscribe(topic, {qos: 0}); $('#topic').val(topic); mqtt.publish("/arduino/commando/", "test intel"); } function onconnectionlost(response) { settimeout(mqttconnect, reconnecttimeout); $('#status').val("connection lost: " + responseobject.errormessage + ". reconnecting"); }; function onmessagearrived(message) { var topic = message.destinationname; var payload = message.payloadstring; $('#ws').prepend('<li>' + topic + ' = ' + payload + '</li>'); }; $(document).ready(function() { mqttconnect(); });
<header> <h2>mqtt test</h2> </header> <div> subscribed <input type='text' id='topic' disabled /> status: <input type='text' id='status' size="80" disabled /> <ul id='ws' style="font-family: 'courier new', courier, monospace;"></ul> </div>
in host file:
host = 'm20.cloudmqtt.com'; // hostname or ip address port = 13365; topic = '/arduino/status/'; // topic subscribe usetls = false; username = "test"; password = "test"; cleansession = true;
use port 33365 , set usetls true.
Comments
Post a Comment