mqtt.js?無(wú)法連接/錯(cuò)誤提示?WebSocket?connection?to?‘ws://xxxxx‘?failed:的解決方法
檢查點(diǎn):
- 檢查自己的頁(yè)面是
http還是https
的,然后核對(duì)用的是mqtt/mqtts
,或者是ws/wss
- 檢查自己的地址是否對(duì)(尤其是
BasePath
),我一開始地址應(yīng)該是ws://xxxxx/mqtt
(BasePath是mqtt
),結(jié)果我一直用ws://xxxxx
。(有的BasePath是mqtt/ws
,連接地址應(yīng)該就是ws://xxxxx/mqtt/ws
) - 注意端口號(hào),我使用的mqtt服務(wù)
ws和mqtt端口號(hào)不一樣
如果以上兩點(diǎn)都沒(méi)問(wèn)題的話,那么就和我當(dāng)下的情況一樣了
使用 mqtt://xxxxx/mqtt
怎么都連不上,就提示 WebSocket connection to 'ws://xxxxx' failed:
來(lái)看看小編挑選的這款手機(jī)你是否感興趣:
解決方法:
直接使用 ws://xxxxx/mqtt
,記得切換端口號(hào),其他的都不改變,只是改了連接地址
const connectUrl = `ws://xxxxx/mqtt`; // 用這個(gè)就好了 // const connectUrl = `mqtt://xxxxx/mqtt`; // 用這個(gè)報(bào)錯(cuò)了,用上面的就好了 const clientId = `mqtt_${Math.random().toString(16).slice(3)}`; var client = mqtt.connect(connectUrl, { clientId, clean: true, connectTimeout: 4000, username: 'username', password: '123456', reconnectPeriod: 1000, }) const topic = '/nodejs/mqtt' client.on('connect', () => { console.log('Connected') client.subscribe([topic], () => { console.log(`Subscribe to topic '${topic}'`) }) })
如果不確定自己配置的對(duì)不對(duì),可以用下面的地址測(cè)試
使用EMQX 提供的 免費(fèi)公共 MQTT 服務(wù)器,該服務(wù)基于 EMQX 的 MQTT 物聯(lián)網(wǎng)云平臺(tái) 創(chuàng)建。
服務(wù)器接入信息如下:
Broker: broker.emqx.io
TCP Port: 1883
Websocket Port: 8083
const connectUrl = `ws://broker.emqx.io:8083/mqtt`; client = mqtt.connect(connectUrl, { clean: true, connectTimeout: 4000, reconnectPeriod: 1000, clientId: 'emqx_test', username: 'emqx_test', password: 'emqx_test' }) // 需要訂閱的主題 const topic = 'test'; //成功連接后觸發(fā)的回調(diào) client.on('connect', () => { console.log('已經(jīng)連接成功'); // 這里可以訂閱多個(gè)主題 client.subscribe([topic], () => { console.log(`訂閱了主題 ${topic}`) }) }); // 當(dāng)客戶端收到一個(gè)發(fā)布過(guò)來(lái)的消息時(shí)觸發(fā)回調(diào) client.on('message', function (message) { // 這里有可能拿到的數(shù)據(jù)格式是Uint8Array格式,所以可以直接用toString轉(zhuǎn)成字符串 // let data = JSON.parse(message.toString()); console.log("返回的數(shù)據(jù):", message) }); // 連接斷開后觸發(fā)的回調(diào) client.on("close", function () { console.log("已斷開連接") });
結(jié)果
到此這篇關(guān)于mqtt.js 無(wú)法連接/錯(cuò)誤提示 WebSocket connection to ‘ws://xxxxx‘ failed:的文章就介紹到這了,更多相關(guān)mqtt.js 無(wú)法連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于JS實(shí)現(xiàn)簡(jiǎn)單的隨機(jī)抽取幸運(yùn)員工系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于HTML+JavaScript實(shí)現(xiàn)簡(jiǎn)單的隨機(jī)抽取幸運(yùn)員工系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-11-11JS+DIV+CSS實(shí)現(xiàn)的經(jīng)典標(biāo)簽切換效果代碼
這篇文章主要介紹了JS+DIV+CSS實(shí)現(xiàn)的經(jīng)典標(biāo)簽切換效果代碼,涉及JavaScript基于鼠標(biāo)事件針對(duì)頁(yè)面元素動(dòng)態(tài)變換的實(shí)現(xiàn)技巧,頁(yè)面美觀實(shí)用,需要的朋友可以參考下2015-09-09js中將URL中的參數(shù)提取出來(lái)作為對(duì)象的實(shí)現(xiàn)代碼
將URL中的參數(shù)提取出來(lái)作為對(duì)象的實(shí)現(xiàn)代碼,適合希望獲取url參數(shù)的朋友。2011-08-08原生JS forEach()和map()遍歷的區(qū)別、兼容寫法及jQuery $.each、$.map遍歷操作
這篇文章主要介紹了原生JS forEach()和map()遍歷的區(qū)別、兼容寫法及jQuery $.each、$.map遍歷操作,結(jié)合實(shí)例形式分析了JS使用forEach()和map()以及jQuery使用$.each、$.map進(jìn)行遍歷操作相關(guān)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-02-02uniapp中全局頁(yè)面掛載組件實(shí)戰(zhàn)過(guò)程(小程序)
這篇文章主要給大家介紹了關(guān)于uniapp中全局頁(yè)面掛載組件(小程序)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用uniapp具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-12-12基于JavaScript實(shí)現(xiàn)瀑布流效果
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)瀑布流效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03如何用js獲取當(dāng)前域名、Url、相對(duì)路徑和參數(shù)
這篇文章主要給大家介紹了關(guān)于如何用js獲取當(dāng)前域名、Url、相對(duì)路徑和參數(shù)的相關(guān)資料,用Javascript可以單獨(dú)獲取當(dāng)前域名、Url相對(duì)路徑和參數(shù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11用 javascript 實(shí)現(xiàn)的點(diǎn)擊復(fù)制代碼
用 javascript 實(shí)現(xiàn)的點(diǎn)擊復(fù)制代碼,需要的朋友可以參考一下2007-03-03