1
初學者在這裏。在瀏覽器中投票並從AJAX獲取MQTT消息
好吧,我試圖完成一個簡單的數據流:
MQTT-數據源---> MQTT經紀人--->的NodeJS-MQTT客戶端---> AJAX式的Web瀏覽器(輪詢每3秒)
- 我想能夠獲取MQTT消息並將其顯示在瀏覽器端的AJAX組件中。
- 其次,在
console.log(mqttMessage);
,我如何清除以前的消息?因爲在控制檯上我可以看到所有以前的數據以及新增的數據。
我在Express上使用mqtt.js作爲我的nodejs mqtt支持。
//Server.js
var mqtt = require('mqtt');
...
...
var getData = function() {
mqttClient.subscribe(mqttTopic);
mqttClient.on('message', function(topic, message) {
mqttMessage = message.toString();
console.log(mqttMessage);
})
return mqttMessage;
}
app.get('/pollData', function(req, res) {
res.send(getData());
});
和一個簡單的html頁面上,我有:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(document).ready(
function() {
setInterval(function() {
$.get('/pollData', function(res) {
$('#data').text(res);
});
}, 3000);
}
);
</script>
任何使用AJAX輪詢的理由,而不是僅僅使用MQTT來通過Websockets將MQTT消息直接傳遞給頁面? – hardillb
@hardillb我認爲這可能是靈活的,讓服務器先處理所有MQTT消息,並以任何格式將數據噴出...作爲AJAX返回,或數據庫查詢或JSON響應... – bshakya
這不會使感。如果你只是傳遞消息而沒有任何好處,這會增加服務器的負載。 – hardillb