vue使用stompjs实现mqtt消息推送通知


Posted in Javascript onJune 22, 2017

最近在研究vue+webAPI进行前后端分离,在一些如前端定时循环请求后台接口判断状态等应用场景用使用mqtt进行主动的消息推送能够很大程度的减小服务端接口的压力,提高系统的效率,而且可以利用mqtt消息通知建立一个独立于业务服务系统的消息通知服务,这个服务还可以与开发的语言无关,客户端既可以是安卓也可以是ios,也可以是java或者c#,python等。闲话不多扯,这里只是实现了在vue中使用mqtt的js客户端,后台用.net WEB API用的是c#的mqtt客户端

第一步:安装依赖

npm install stompjs

运行npm run dev可能会报错,提示安装net,执行命令

npm install --save net

第二部:组件中应用stompjs

组件中的js部分

<script>
import Stomp from 'stompjs'
---在sysconstant.js配置文件中配置mqtt的服务端地址,账号等信息
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服务
   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

/**
 * 配置文件,记录系统中固定的参数
 */
export const MQTT_SERVICE = 'ws://127.0.0.1:61623/stomp' // mqtt服务地址
export const MQTT_USERNAME = 'admin' // mqtt连接用户名
export const MQTT_PASSWORD = 'password' // mqtt连接密码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(4)
Dec 23 Javascript
JS中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
js通过location.search来获取页面传来的参数
Sep 11 Javascript
标准的js无缝滚动效果
Aug 30 Javascript
AngularJS中的缓存使用
Jan 11 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
EasyUI在Panel上动态添加LinkButton按钮
Aug 11 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
Sep 07 Javascript
使用 vue.js 构建大型单页应用
Feb 10 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
Oct 08 Javascript
JS制作简易计算器的实例代码
Jul 04 Javascript
原生js滑动轮播封装
Jul 31 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 #Javascript
详解用webpack2搭建angular2的项目
Jun 22 #Javascript
vue2.0实现分页组件的实例代码
Jun 22 #Javascript
纯JS实现只能输入数字的简单代码
Jun 21 #Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
Jun 21 #Javascript
Vue实现百度下拉提示搜索功能
Jun 21 #Javascript
vue2.0中click点击当前li实现动态切换class
Jun 21 #Javascript
You might like
php 一元分词算法
2009/11/30 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
详解如何设置Python环境变量?
2019/05/13 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
幼儿园三八妇女节活动方案
2014/03/11 职场文书
行政诉讼答辩状
2015/05/21 职场文书
庆七一活动简报
2015/07/20 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
用python开发一款操作MySQL的小工具
2021/05/12 Python
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS