1 回答

TA貢獻1850條經驗 獲得超11個贊
你的 mqttCon.js 文件沒有client.prototype.unsubscribe = function() {},所以錯誤是正確的。您正在定義client為一個模塊,但您確實需要mqtt.unsubscribe()在某個地方調用。因此,您需要unsubscribe()向常量添加一個函數client(在這種情況下實際上應該是一個函數var),或者mqtt.unsubscribe()在您的 processMessage.js 文件中需要 mqtt 模塊后調用該函數....我認為這與您正在嘗試的相反無論如何要做。
更新:以上影響了我的想法,問題是我正在導入processMessage.js哪個mqttCon.js又導入了哪個。循環導入,意思是mqttCon(mqttClient) was always not yet initialized inside processMessage.js. 解決方案是當客戶端已經初始化并導出為如下模塊時,我processMessage.js在塊內導入: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))
? ? ? ? })
? ? }
})
添加回答
舉報