vue中使用mqtt詳細教程(相容ie)

2021-10-08 04:04:53 字數 2665 閱讀 2522

我的理解:如果a與b要通訊,其中需要乙個訊息中介軟體c(broker),無論a/b誰發布訊息(理想情況是有更新時就發布),都發向c,無論誰訂閱訊息都向c訂閱,然後不斷獲取到最新的a/b的訊息。訂閱的終端可有多個(類似,北斗只負責發位置資訊,終端裝置只需要獲取就可以了,且是最新的)

大概這樣子(噓…菜鳥教程上偷的圖):

mqtt測試**:(推薦第二個,第一改版了,**能連線上,它卻連線不上)

mqtt websocket toolkit、

hivemq

想在vue中使用,先安裝:

cnpm install mqtt -

s//這樣預設給你安裝的是4.1.0版本

2023年5月19日13:32:13更新

版本@3.0.0@4.2.6,當連續(for迴圈)發布2個以上鏈結時,連線成功,當時除第乙個外都會發布失敗(client disconnecting),我已經降版本到2.18.8!哎~~

cnpm install [email protected]

s

因為ie(包括以ie為核心的360急速瀏覽器)上不識別4.1.0版本的es6語法。我曾嘗試在babel.config.js有過如下配置想轉為es5.

module.exports =]]

, plugins:

['@babel/plugin-transform-arrow-functions'

]//需要安裝

}

我只在乙個頁面用到了,所以在單頁面中引入

import mqtt from

"mqtt"

接著貼一下使用**(**中注釋很全)

//引入connect配置

import

from

"../../commonparams/index.js"

關於配置項:

//commonparams/index.js

export

const mqttconfig =

定義了兩個函式:

/*

注釋中所提到的後台即為發布端/訂閱端,

*/// 初始化mqtt

initmqtt

(topic));

// 在data中定義mqtt,以便斷開連線

// ws://***xx是連線位址,後台提供,wss是https連線

_this.

mqtt

= mqtt.

connect

('ws://***xx'

, cfg)

_this.

mqtt.on

('error'

,(e)

=>);

//建立連線後訂閱主題

_this.

mqtt.on

('connect',(

)=>

, err =>

else})

});// 後台傳送的訊息

_this.

mqtt.on

('message'

,function

(top, message)})

;// 其他異常事件

_this.

mqtt.on

('reconnect',(

)=>);

_this.

mqtt.on

('disconnect'

,(error)

=>);

_this.

mqtt.on

('close',(

)=>);

},

上面你可能注意到,this.mqtt為全域性變數,這是為了離開此頁面時銷毀mqtt鏈結

beforedestroy()

,

// 發布mqtt,使用者名稱密碼和連線配置找後台要

mqttpublish

(topic));

_this.

mqtt

= mqtt.

connect

('ws://***x'

, cfg)

_this.

mqtt.on

('connect'

,(e)

=>

, error =>

else})

});}

,

然後呼叫就好了

created()

,

需要發布時:

//注意後台訂閱的時候一級主題也是tops,你們約定就行

this

.mqttpublish

('tops/top3'

)

以上。

予人玫瑰,手留余香~~~,

如何在uniapp中使用mqtt

1.安裝mqtt和uuid ps.如果沒有pakage.json,安裝是會提示報錯,但是不影響安裝使用。如果想方便一點,下次拉 直接安裝的話,可以自己在專案根目錄下加乙個pakage.json檔案,新增如下內容 devdependencies scripts 2.頁面引入mqtt並呼叫 mqtt連線...

Git 使用詳細教程

學習git的使用,寫的很詳細 git 總結 將本地專案上傳到碼雲 將本地的專案上傳到碼雲 1 碼雲上建立乙個專案 testgit 名字隨你 2 本地建立乙個資料夾d testgit,然後使用git bash 3 cd 到本地資料夾中d testgit,4 使用 git init 命令 初始化乙個gi...

Git Bash使用詳細教程

詳細命令教程上方位址進入檢視 一 git是什麼?git是目前世界上最先進的分布式版本控制系統。二 svn與git的最主要的區別?svn是集中式版本控制系統,版本庫是集中放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從 伺服器 得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到 ...