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 相关文章推荐
tbody元素支持嵌套的注意方法
Mar 24 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
May 14 Javascript
js 将json字符串转换为json对象的方法解析
Nov 13 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
Aug 15 Javascript
javascript实现粘贴qq截图功能(clipboardData)
May 29 Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 Javascript
jQuery ready()和onload的加载耗时分析
Sep 08 Javascript
layui弹出层效果实现代码
May 19 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
通过Kettle自定义jar包供javascript使用
Jan 29 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 Javascript
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
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自带的进位制之间的转换函数
2013/06/08 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
应届医学毕业生求职信分享
2013/12/02 职场文书
高考备战决心书
2014/03/11 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
退休欢送会主持词
2015/07/01 职场文书