以下是問題:
我broker 是 Eclipse Mosquitto MQTT v5/v3.1.1 broker,
同一段代碼,使用uniapp運行不了,在raspberry 上則可以正常運行,請問是為何?
var mqtt = require ('mqtt');
var client = mqtt.connect('wx://192.168.100.66'); // 此處本應是mqtt://192.168.100.66 ,但會報錯
client.on('connect', function () {
console.log('connected');
client.subscribe('/python/mqtt')
})
client.on('message', function (topic, message) {
console.log(topic,':',message.toString())
})
client.on('reconnect', (msg) => {
console.log('reconnect', msg)
});
client.on('reconnect', (msg) => {
console.log('reconnect', msg)
});
client.on('error', () => {
console.log('error')
});
client.on('end', () => {
console.log('end')
});
client.on('offline', (msg) => {
console.log('offline',msg)
});
以下是console內容:
17:35:34.271 offline, undefined at main.js:90
17:35:35.274 reconnect, undefined at main.js:78
17:35:41.277 reconnect, undefined at main.js:78
17:35:47.308 reconnect, undefined at main.js:78
17:35:53.343 reconnect, undefined at main.js:78
以下是解決方案及一些常見錯誤設定:
第一:MQTT 在 APP端 暫時不能使用mqtt協議 (mqtt://ip地址) 要改為:
H5端-websock協議 ws://ip地址:端口
APP端 及 微信端-websock協議 wx://ip地址:端口
如: wx://192.168.100.66:8080/
第二: broker 端為windows OS 情況下 (本人使用 Eclipse Mosquitto 下載地址為https://mosquitto.org/download/)
1.修改 MQTT 預設config: C:\Program Files\mosquitto\mosquitto.conf
增加以下幾行:
allow_anonymous true #允許匿名
port 1883 #mqtt端口
listener 8080 #websocket端口 大概意思是 端口轉發 由8080 轉做1883 以及由websocket協議轉做mqtt協議
protocol websockets #使用websocket端口
2.要打開[windows服務],詳細不說了
3.網絡防火牆最好關掉吧, 網絡點選在[專用]網絡 不要點選 [公用]網絡
最後吐槽一下windows 明明自己的問題,偏偏就幫你封這封那的,真心不好開發
可能還有其他的因素,導致連不上MQTT,就自行找一下原因了,或留言看一下有沒有大神可以幫到你.
0 个回复