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 相关文章推荐
bcastr2.0 通用的图片浏览器
Nov 22 Javascript
JavaScript经典效果集锦
Jul 06 Javascript
js模拟类继承小例子
Jul 17 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
Jul 04 Javascript
Javascript中找到子元素在父元素内相对位置的代码
Jul 21 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
Dec 31 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
Mar 23 Javascript
jquery实现简单的二级导航下拉菜单效果
Sep 07 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
Sep 30 Javascript
在vue-cli中组件通信的方法
Dec 16 Javascript
JS实现仿微信支付弹窗功能
Jun 25 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
Nov 11 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
用Zend Encode编写开发PHP程序
2010/02/21 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
python安装与使用redis的方法
2016/04/19 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
PyQT实现多窗口切换
2018/04/20 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
Django 重写用户模型的实现
2019/07/29 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
怎样写留学自荐信
2013/11/11 职场文书
大学生简历的个人自我评价
2013/12/04 职场文书
股权转让意向书
2014/04/01 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
先进教师事迹材料
2014/12/16 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
golang中的空slice案例
2021/04/27 Golang
Python异常类型以及处理方法汇总
2021/06/05 Python
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python