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 Pro-深入面向对象的程序设计之继承的详解
May 07 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
Oct 16 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
jQuery取id有.的值的方法
May 21 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
Jun 17 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
Webpack性能优化 DLL 用法详解
Aug 10 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
微信小程序常用的3种提示弹窗实现详解
Sep 19 Javascript
windows实现npm和cnpm安装步骤
Oct 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使用标签替换的方式生成静态页面
2015/05/21 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
javascript一些不错的函数脚本代码
2008/09/10 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
Python进程池Pool应用实例分析
2019/11/27 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
Django权限设置及验证方式
2020/05/13 Python
python文件及目录操作代码汇总
2020/07/08 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
Django配置跨域并开发测试接口
2020/11/04 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
工业自动化专业毕业生推荐信
2013/11/18 职场文书
优质服务活动实施方案
2014/05/02 职场文书
信息管理专业自荐书
2014/06/05 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Java移除无效括号的方法实现
2021/08/07 Java/Android
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python