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 相关文章推荐
JS类的封装及实现代码
Dec 02 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
Jan 19 Javascript
使用js完成节点的增删改复制等的操作
Jan 02 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 Javascript
AngularJS表单提交实例详解
Feb 18 Javascript
vue-resource调用promise取数据方式详解
Jul 21 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
深入理解Node内建模块和对象
Mar 12 Javascript
jQuery实现验证用户登录
Dec 10 jQuery
js中switch语句的学习笔记
Mar 25 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
重置版宣传动画
2020/04/09 魔兽争霸
PHP生成便于打印的网页
2006/10/09 PHP
PHP生成静态页面详解
2006/11/19 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
Python网络编程详解
2017/10/31 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
windows下python安装pip图文教程
2018/05/25 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
python游戏开发的五个案例分享
2020/03/09 Python
基于Python实现粒子滤波效果
2020/12/01 Python
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
参观监狱心得体会
2014/01/02 职场文书
单位提档介绍信
2014/01/17 职场文书
幼儿园开学寄语
2014/04/03 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
销售提升方案
2014/06/07 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2014年店长工作总结
2014/11/17 职场文书
团员个人年度总结
2015/02/26 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
学生会干部任命书
2015/09/21 职场文书