將mqtt訂閱綁定到節點ejs和alpine狀態

舊的Rails和php程序員,對js來說是新的,我覺得我缺少了一些基本的東西。我有一個運行小型webapp、express、ejs、jquery和alpinejs的節點服務器。(非常熟悉jquery,但是學習alpinejs)。我有一個運行的mqtt服務器,可以通過手機操作幾個主題,甚至可以在節點控制臺中看到它們(下面的代碼)

我不明白的是如何獲取,或者“綁定”訂閱一個變量,我可以“傳遞”到express應用程序中,這樣我就可以在html中顯示mqtt消息。我現在正在嘗試設置fridgeFan = true之類的東西。我認為,我的想法是讓mqtt更新alpinejs變量,從而更新頁面,反之亦然。。。

有人能給我指出我要做的事情的大致方向嗎?

options={
  clientId:"node-admin",
  clean:true,
};

const express = require('express');
const app = express();
const mqtt = require('mqtt')
const client = mqtt.connect('mqtt://192.168.10.66', options)

client.on("connect",function(){
  console.log("connected");
});

client.on('message',function(topic, message, packet){
  console.log("message is "+ message);
  console.log("topic is "+ topic);
  // assume id like to bind topic and message to
  // some variable that I can pass or have access to
  // in the res.render calls below??

  // couple of things I was trying
  //document.getElementById('mqtt_div').innerHTML += topic;
  //document.querySelector('[x-data]').__x.getUnobservedData().fridgeFan = message;
});

client.subscribe("sensors/sensor1",{qos:1});


app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));

app.get('/', (req, res) => {
  res.render('index', {
    title: 'Homepage'
  });
});

通過上面的代碼,我可以通過手機應用程序發布到“sensors/sensor1”,我可以在節點控制臺看到它,當然不是瀏覽器控制臺。

如何將“message”綁定到alpinejs變量以使其更新?

或者我應該換個方向把client.on調用放在別處,比如ejs文件?在我的測試中,ejs文件不知道require mqtt

? 最佳回答:

不能將on消息處理程序移到EJS文件中,因為它們只在調用render()時“執行”

您可以在ExpressJS應用程序中聲明一個全局變量,并通過on('message',...)回調更新其中的字段,然后將此變量傳遞到對render()的調用中,但這意味著頁面將只顯示加載頁面時的值。

如果您希望在消息發布時在頁面中實時更新,那么您有一個真正的選擇。也就是說,使用支持Websockets上的MQTT的代理(幾乎所有現代代理都支持這一點)。有了它,您可以將MQTT客戶機(pahojavascript客戶機或使用MQTT.js客戶機)加載到頁面中,并直接從頁面訂閱您感興趣的主題。通過這種方式,新消息被直接傳遞到頁面,然后您可以使用您想要更新頁面的任何JavaScript框架。

主站蜘蛛池模板: 国产一区在线mmai| 国产对白精品刺激一区二区 | 一区二区三区无码视频免费福利 | 亚洲AV无码国产精品永久一区| 国产自产V一区二区三区C| 一区二区精品视频| 一区二区免费国产在线观看| 美女免费视频一区二区| 日韩精品一区二区三区视频| 男人免费视频一区二区在线观看| 国产一区二区在线观看麻豆| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 人妻互换精品一区二区| 国产精品无码一区二区在线观| 精品国产日韩亚洲一区在线| 精品乱码一区内射人妻无码 | 亚洲国产精品一区二区第四页| 一区二区三区免费视频观看 | 国产免费一区二区三区不卡 | 精品深夜AV无码一区二区| 91国偷自产一区二区三区| 亚洲午夜精品一区二区麻豆| 日韩在线一区二区三区视频| 日韩熟女精品一区二区三区| 国产一区三区二区中文在线| 亚洲国产一区二区三区青草影视| 久久精品一区二区三区AV| 精品亚洲福利一区二区| 丰满岳乱妇一区二区三区| 久久亚洲国产精品一区二区| 狠狠色综合一区二区| 鲁大师成人一区二区三区| 国精品无码A区一区二区| 久久久国产精品亚洲一区 | 国产一区二区精品在线观看| 精品国产一区二区三区久久蜜臀 | 中文字幕乱码一区久久麻豆樱花| 日韩aⅴ人妻无码一区二区| 精品乱子伦一区二区三区高清免费播放| 九九久久99综合一区二区| 亚洲AV无码一区二区三区网址|