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实现仿Windows关机效果
Mar 10 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
Sep 26 Javascript
jquery.post用法示例代码
Jan 03 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
javascript创建对象的几种模式介绍
May 06 Javascript
vue插件tab选项卡使用小结
Oct 27 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
vue.js中指令Directives详解
Mar 20 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
Jun 14 Javascript
如何从零开始利用js手写一个Promise库详解
Apr 19 Javascript
JavaScript中的事件与异常捕获详析
Feb 24 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读取flv文件的播放时间长度
2009/09/03 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
用 javascript 实现的点击复制代码
2007/03/24 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
基于js文件加载优化(详解)
2018/01/03 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
Python中functools模块函数解析
2017/03/12 Python
名片管理系统python版
2018/01/11 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Python中base64与xml取值结合问题
2019/12/22 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
幼儿园家长安全责任书
2014/07/22 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL