1 回答

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
你的 mqttCon.js 文件沒(méi)有client.prototype.unsubscribe = function() {},所以錯(cuò)誤是正確的。您正在定義client為一個(gè)模塊,但您確實(shí)需要mqtt.unsubscribe()在某個(gè)地方調(diào)用。因此,您需要unsubscribe()向常量添加一個(gè)函數(shù)client(在這種情況下實(shí)際上應(yīng)該是一個(gè)函數(shù)var),或者mqtt.unsubscribe()在您的 processMessage.js 文件中需要 mqtt 模塊后調(diào)用該函數(shù)....我認(rèn)為這與您正在嘗試的相反無(wú)論如何要做。
更新:以上影響了我的想法,問(wèn)題是我正在導(dǎo)入processMessage.js哪個(gè)mqttCon.js又導(dǎo)入了哪個(gè)。循環(huán)導(dǎo)入,意思是mqttCon(mqttClient) was always not yet initialized inside processMessage.js. 解決方案是當(dāng)客戶端已經(jīng)初始化并導(dǎo)出為如下模塊時(shí),我processMessage.js在塊內(nèi)導(dǎo)入:client.on('connect'....)...
client.on("connect", () => {
? ? console.log("MQTT connected? with status: " + client.connected);
? ? if (client.connected) {
? ? ? ? client.on('message', (topic, message) => {
? ? ? ? ? ? require('./processMessage')(topic, String(message))
? ? ? ? })
? ? }
})
添加回答
舉報(bào)