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ù)還可以與開發(fā)的語言無關(guān),客戶端既可以是安卓也可以是ios,也可以是java或者c#,python等。閑話不多扯,這里只是實(shí)現(xiàn)了在vue中使用mqtt的js客戶端,后臺(tái)用.net WEB API用的是c#的mqtt客戶端
第一步:安裝依賴
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客戶端,并連接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連接用戶名 export const MQTT_PASSWORD = 'password' // mqtt連接密碼
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3+echarts5踩坑以及resize方法報(bào)錯(cuò)的解決
這篇文章主要介紹了Vue3+echarts5踩坑以及resize方法報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Vue使用Cropper實(shí)現(xiàn)圖片裁剪功能
圖片裁剪功能無論是用戶頭像的裁剪,還是圖片內(nèi)容的精確調(diào)整,都成為了提升用戶體驗(yàn)的關(guān)鍵一環(huán),本文將詳細(xì)介紹如何在Vue.js項(xiàng)目中集成并使用Cropper.js實(shí)現(xiàn)一個(gè)強(qiáng)大的圖片裁剪組件,需要的可以參考下2024-11-11vue多頁面項(xiàng)目開發(fā)實(shí)戰(zhàn)指南
一般我們的vue項(xiàng)目都是單頁面的,其實(shí)因?yàn)関ue在工程化開發(fā)的時(shí)候依賴了webpack,webpack幫我們將所有的資源整合到一起而形成一個(gè)單頁面,下面這篇文章主要給大家介紹了關(guān)于vue多頁面項(xiàng)目開發(fā)的相關(guān)資料,需要的朋友可以參考下2022-01-01一步步教你利用webpack如何搭一個(gè)vue腳手架(超詳細(xì)講解和注釋)
這篇文章主要給大家介紹了軟玉利用webpack如何搭一個(gè)vue腳手架的相關(guān)資料,文中有超詳細(xì)講解和注釋,對(duì)大家學(xué)習(xí)或者使用webpack具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01Vue+Element UI實(shí)現(xiàn)下拉菜單的封裝
這篇文章主要為大家詳細(xì)介紹了Vue+Element UI實(shí)現(xiàn)下拉菜單的封裝代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09vue中實(shí)現(xiàn)拖拽排序功能的詳細(xì)教程
在業(yè)務(wù)中列表拖拽排序是比較常見的需求,下面這篇文章主要給大家介紹了關(guān)于vue中實(shí)現(xiàn)拖拽排序功能的詳細(xì)教程,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08vue-cli+webpack記事本項(xiàng)目創(chuàng)建
這篇文章主要為大家詳細(xì)介紹了vue-cli+webpack創(chuàng)建記事本項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04