我的理解:如果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是集中式版本控制系統,版本庫是集中放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從 伺服器 得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到 ...