第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Nodejs MQTT:取消訂閱不是一個(gè)函數(shù)

Nodejs MQTT:取消訂閱不是一個(gè)函數(shù)

心有法竹 2023-03-18 16:31:55
我很好地實(shí)施了 MQTT,但我遇到了方法問(wèn)題unsubscribe。mqttCon.publish() , mqttCon.subscribe(), mqttCon.on()...除此以外,所有其他功能 ( ) 都運(yùn)行良好。我已經(jīng)檢查了拼寫(xiě),甚至完成了ctrl +click它,它把我?guī)У搅藥?kù)實(shí)現(xiàn),這意味著它是正確的方法并且引用得很好,但我一直收到下面的錯(cuò)誤。我該如何解決?這是一行: mqttCon.unsubscribe(topic)TypeError: mqttCon.unsubscribe is not a function    at noopHandler (/home/dev/project-dir/src/mqtt/processMessage.js:5:13)    at module.exports (/home/dev/project-dir/src/mqtt/processMessage.js:10:20)    at MqttClient.client.on (/home/dev/project-dir/src/mqtt/mqttCon.js:16:13)    at MqttClient.emit (events.js:189:13)    at MqttClient._handlePublish (/home/dev/project-dir/node_modules/mqtt/lib/client.js:1271:12)    at MqttClient._handlePacket (/home/dev/project-dir/node_modules/mqtt/lib/client.js:410:12)    at work (/home/dev/project-dir/node_modules/mqtt/lib/client.js:321:12)    at Writable.writable._write (/home/dev/project-dir/node_modules/mqtt/lib/client.js:335:5)    at doWrite (/home/dev/project-dir/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:428:64)    at writeOrBuffer (/home/dev/project-dir/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:417:5)注意:我使用的是 ES6(Emacscript 6+) javascript 而不是Typescript。節(jié)點(diǎn)12.18.1和 npm6.14.6這是我的連接代碼mqttCon.js:const mqtt = require('mqtt')const processMessage = require('./processMessage')const logger = require('../logConf')const options = {    host: '',    port: '',    username:'',    password: '',    protocol: ''};const client = mqtt.connect(options)client.on("connect", function () {    console.log("MQTT connected  with status: " + client.connected);    if (client.connected) {        client.on('message', (topic, message) => {            processMessage(topic, String(message))        })    }})
查看完整描述

1 回答

?
慕蓋茨4494581

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))

? ? ? ? })

? ? }

})


查看完整回答
反對(duì) 回復(fù) 2023-03-18
  • 1 回答
  • 0 關(guān)注
  • 327 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)