最近在研究vue+webAPI進行前后端分離,在一些如前端定時循環(huán)請求后臺接口判斷狀態(tài)等應(yīng)用場景用使用mqtt進行主動的消息推送能夠很大程度的減小服務(wù)端接口的壓力,提高系統(tǒng)的效率,而且可以利用mqtt消息通知建立一個獨立于業(yè)務(wù)服務(wù)系統(tǒng)的消息通知服務(wù),這個服務(wù)還可以與開發(fā)的語言無關(guān),客戶端既可以是安卓也可以是ios,也可以是java或者c#,python等。閑話不多扯,這里只是實現(xiàn)了在vue中使用mqtt的js客戶端,后臺用.net WEB API用的是c#的mqtt客戶端
第一步:安裝依賴
npm install stompjs
運行npm run dev可能會報錯,提示安裝net,執(zhí)行命令
npm install --save net
第二部:組件中應(yīng)用stompjs
組件中的js部分
<script>import Stomp from 'stompjs'---在sysconstant.js配置文件中配置mqtt的服務(wù)端地址,賬號等信息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連接密碼
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答