在微信小程序中使用mqtt服務(wù)的方法
因?yàn)樾枨蟮年P(guān)系,需要在小程序中使用mqtt來進(jìn)行tcp的長(zhǎng)連接,實(shí)時(shí)監(jiān)聽設(shè)備的返回狀態(tài)。
js中連接mqtt服務(wù)器是通過websocket來實(shí)現(xiàn)的,我在網(wǎng)上找了2個(gè)庫,一個(gè)是eclipse開發(fā)的paho-mqtt。
項(xiàng)目地址:https://github.com/eclipse/paho.mqtt.javascript
一個(gè)是個(gè)人開發(fā)的mqttjs,項(xiàng)目地址:https://github.com/mqttjs/MQTT.js
比較了下,mqqtt.js比較靈活對(duì)小程序也有很好的支持,所以采用了這個(gè)庫來做連接。
于是看了下他自己的介紹,直接拿過來試用了下。因?yàn)槭侵苯佑迷谛〕绦蛑胁恍枰敲磸?fù)雜,它提供了靜態(tài)的cdn下載,
直接打開鏈接復(fù)制到工程中直接用就可以,不用更改。cdn地址:https://unpkg.com/mqtt@2.18.8/dist/mqtt.js min版:https://unpkg.com/mqtt@2.18.8/dist/mqtt.min.js;
使用起來也很簡(jiǎn)單,直接貼代碼
function connectMq(){ // 連接選項(xiàng) const options = { connectTimeout: 4000, // 超時(shí)時(shí)間 // 認(rèn)證信息 按自己需求填寫 clientId: '', username: 'xxx', password: 'xxx', } let phone = app.globalData.myInfo.TelPhone; const client = mqtt.connect('wx://xx.xxxxxxx', options) client.on('reconnect', (error) => { console.log('正在重連:', error) }) client.on('error', (error) => { console.log('連接失敗:', error) }) client.on('connect', (e) => { console.log('成功連接服務(wù)器111') //訂閱一個(gè)主題 client.subscribe('phone_' + phone, { qos: 0 }, function (err) { if (!err) { //client.publish('123', 'Hello mqtt') console.log("訂閱成功") } }) }) //監(jiān)聽mq的返回 client.on('message', function (topic, message, packet) { // message is Buffer console.log("packet", packet.payload.toString()) client.end() }) }
這里著重要注意的連接地址的寫法
//mqtt.connect('wx://xxxxxxxxxx', options); //wx:// xx.xx.xxxxxxx //協(xié)議版本 鏈接地址 //微信小程序這個(gè)版本 作者自己封裝了一層 wx表示普通的ws協(xié)議連接 wxs表示加密之后的wss協(xié)議連接。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js判斷鼠標(biāo)同時(shí)離開兩個(gè)div的思路及代碼
js判斷鼠標(biāo)同時(shí)離開兩個(gè)div想了好長(zhǎng)時(shí)間終于出爐了,下面與大家分享下具體的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下啊2013-05-05JS中節(jié)流和防抖函數(shù)的實(shí)現(xiàn)及區(qū)別示例
這篇文章主要為大家介紹了JS中節(jié)流和防抖函數(shù)的實(shí)現(xiàn)及使用區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06JavaScript?映射器?array.flatMap()
這篇文章主要介紹了JavaScript?映射器?array.flatMap(),array.flatMap()是一個(gè)映射函數(shù),它接收一個(gè)數(shù)組和一個(gè)映射函數(shù),然后返回一個(gè)新的映射數(shù)組,下面進(jìn)入文章了解具體內(nèi)容2022-02-02JS 實(shí)現(xiàn)完美include載入實(shí)現(xiàn)代碼
在寫這個(gè)之前在網(wǎng)上搜索了些資料,發(fā)現(xiàn)以前寫的include都存在2個(gè)問題,這也是include需要解決的比較重要的2個(gè)問題。2010-08-08純JS實(shí)現(xiàn)五子棋游戲兼容各瀏覽器(附源碼)
純JS實(shí)現(xiàn)五子棋游戲同時(shí)兼容各個(gè)主流瀏覽器,感興趣的朋友可以下載源碼學(xué)習(xí)下也是對(duì)你js技巧的晉級(jí)2013-04-04js解決event.keyCode在Firefox中失效的問題
這篇文章主要介紹了js解決event.keyCode在Firefox中失效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12利用策略模式與裝飾模式擴(kuò)展JavaScript表單驗(yàn)證功能
這篇文章主要介紹了利用策略模式與裝飾模式擴(kuò)展JavaScript表單驗(yàn)證功能,需要的朋友可以參考下2017-02-02