vue使用stompjs實(shí)現(xiàn)mqtt消息推送通知
最近在研究vue+webAPI進(jìn)行前后端分離,在一些如前端定時(shí)循環(huán)請(qǐng)求后臺(tái)接口判斷狀態(tài)等應(yīng)用場(chǎng)景用使用mqtt進(jìn)行主動(dòng)的消息推送能夠很大程度的減小服務(wù)端接口的壓力,提高系統(tǒng)的效率,而且可以利用mqtt消息通知建立一個(gè)獨(dú)立于業(yè)務(wù)服務(wù)系統(tǒng)的消息通知服務(wù),這個(gè)服務(wù)還可以與開(kāi)發(fā)的語(yǔ)言無(wú)關(guān),客戶(hù)端既可以是安卓也可以是ios,也可以是java或者c#,python等。閑話(huà)不多扯,這里只是實(shí)現(xiàn)了在vue中使用mqtt的js客戶(hù)端,后臺(tái)用.net WEB API用的是c#的mqtt客戶(hù)端
第一步:安裝依賴(lài)
npm install stompjs
運(yùn)行npm run dev可能會(huì)報(bào)錯(cuò),提示安裝net,執(zhí)行命令
npm install --save net
第二部:組件中應(yīng)用stompjs
組件中的js部分
<script>
import Stomp from 'stompjs'
---在sysconstant.js配置文件中配置mqtt的服務(wù)端地址,賬號(hào)等信息
import { MQTT_SERVICE, MQTT_USERNAME, MQTT_PASSWORD } from '../../config/sysconstant.js'
export default {
name: 'entry',
data () {
return {
client: Stomp.client(MQTT_SERVICE)
}
},
created () {
this.connect()
},
methods: {
onConnected: function (frame) {
console.log('Connected: ' + frame)
var topic = '/topic/AllCustomer'
---訂閱頻道
this.client.subscribe(topic, this.responseCallback, this.onFailed)
},
onFailed: function (frame) {
console.log('Failed: ' + frame)
},
responseCallback: function (frame) {
console.log('responseCallback msg=>' + frame.body)
---接收消息
},
connect: function () {
---初始化mqtt客戶(hù)端,并連接mqtt服務(wù)
var clientid = util.uuid()
var headers = {
'login': MQTT_USERNAME,
'passcode': MQTT_PASSWORD,
'client-id': clientid
// additional header
}
this.client.connect(headers, this.onConnected, this.onFailed)
}
}
}
</script>
配置文件sysconstant.js
/** * 配置文件,記錄系統(tǒng)中固定的參數(shù) */ export const MQTT_SERVICE = 'ws://127.0.0.1:61623/stomp' // mqtt服務(wù)地址 export const MQTT_USERNAME = 'admin' // mqtt連接用戶(hù)名 export const MQTT_PASSWORD = 'password' // mqtt連接密碼
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue中前端如何實(shí)現(xiàn)pdf預(yù)覽功能(含vue-pdf插件用法)
這篇文章主要給大家介紹了vue中前端如何實(shí)現(xiàn)pdf預(yù)覽功能的相關(guān)資料,文中包含vue-pdf插件用法,在前端開(kāi)發(fā)中,很多時(shí)候我們需要進(jìn)行pdf文件的預(yù)覽操作,需要的朋友可以參考下2023-07-07
Vue數(shù)據(jù)監(jiān)聽(tīng)器watch和watchEffect的使用
今天我們來(lái)學(xué)習(xí)一下watch監(jiān)聽(tīng)器和它的好兄弟watchEffect監(jiān)聽(tīng)器。這個(gè)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,用的不是很多,當(dāng)然了,根據(jù)自己的項(xiàng)目情況自行決定使用,希望對(duì)大家有所幫助2023-02-02
vue中的watch監(jiān)聽(tīng)數(shù)據(jù)變化及watch中各屬性的詳解
這篇文章主要介紹了vue中的watch監(jiān)聽(tīng)數(shù)據(jù)變化及watch中的immediate、handler和deep屬性詳解,本文大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-09-09
vue2+element-ui+nodejs實(shí)現(xiàn)圖片上傳和修改圖片到數(shù)據(jù)庫(kù)的方法
在Web開(kāi)發(fā)中經(jīng)常需要使用圖片,有時(shí)候需要對(duì)圖片進(jìn)行上傳,這篇文章主要給大家介紹了關(guān)于vue2+element-ui+nodejs實(shí)現(xiàn)圖片上傳和修改圖片到數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
vue+element?upload上傳帶參數(shù)的實(shí)例
這篇文章主要介紹了vue+element?upload上傳帶參數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
在Vue中實(shí)現(xiàn)深度監(jiān)聽(tīng)的示例代碼
在 Vue 中,深度監(jiān)聽(tīng)是指監(jiān)聽(tīng)一個(gè)對(duì)象或數(shù)組的嵌套屬性(深層結(jié)構(gòu))的變化,而不僅僅是監(jiān)聽(tīng)頂層屬性的引用變化,本文給大家介紹了如何在Vue中實(shí)現(xiàn)深度監(jiān)聽(tīng),并通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03

