我是電子和 node.js 的新手,正在使用 mqtt 來更新 DOM。我在 mqtt 上收到訊息到我的 main.js onmessage 函式,我的 main.js 是
const { app, BrowserWindow } = require('electron')
var mqtt = require('mqtt')
var client = mqtt.connect("mqtt://localhost")
client.on("connect", function(){
client.subscribe("testtopic")
})
client.on("message", function(topic, message, packet){
document.getElementById("someId").innerHTML = message
})
function createWindow () {
const win = new BrowserWindow({webPreferences:{nodeIntegration: true}})
win.loadFile('index.html')
win.maximize()
}
app.whenReady().then(() => {
createWindow()
})
我想從我的 onmessage 回呼更新 index.html 中可用的元素。我無法訪問它顯示未定義錯誤檔案。如何實作這一點,或者我可以直接在我的 index.html 腳本中匯入 mqtt 嗎?在這種情況下,為什么要使用節點 mqtt,我可以使用 paho mqtt。請就此提出建議。
uj5u.com熱心網友回復:
該代碼在“后端”而不是瀏覽器中運行,因此無法訪問 DOM。
如果您想更新 DOM 以回應 MQTT 訊息,您有幾個選擇。
在
index.html檔案中通過 WebSockets 實作 MQTT,該檔案將直接在頁面中訂閱代理并可以直接訪問 DOM。您可以在頁面中使用 MQTT.js 或 Paho 客戶端,但您需要一個專門配置為通過 WebSocket 支持 MQTT 的代理。看看在后端代碼和加載的頁面之間設定一些直接連接,以下問題可能對一些提示有所幫助:如何訪問電子中的 DOM 元素?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/324662.html
標籤:javascript 节点.js 电子 MQTT
