vue使用mqtt

vue使用mqtt

之前以为自己写了,但是后来发现没写,所有来补上,其实这些个通信在写法上都是差不多的,只是用不同而已,适应的场景不同。
解释:作为mqtt而言,还是订阅发布的形式吗,不多说了,开始补作业

1.先安装

npm install matt --save

2.使用位置

这个东西还是建议用到哪个地方就放在哪个地方
你可以放在一个公共的组件里面,或者进行约束好 放在App.vue

3.开始使用

引入库文件 定义相应的变量

    // 使用mqtt接收推送消息
    import mqtt from 'mqtt'

    const options = {
        connectTimeout: 4000,
        username: 'mqtt的登录名称',
        password: 'mqtt的密码',
        clean: true
    }

建议把mqtt的对象 挂载到公共的变量, 赋值成全局的变量,这样使用起来方便,
建立一个公共的文件 gloab.js ,存储获取连接成功的mqtt的对象

//gloab.js
 export default {
    // 接收消息的对象
    ws: {},
    setWs: function(newWs) {
        this.ws = newWs
    },
  }
	// 将mqtt的连接对象赋值成全局的
      this.global.setCompulsoryWs(mqtt.connect('ws://地址:8083/mqtt', options))
      this.global.CompulsoryWs.on('connect', () => {
          this.global.CompulsoryWs.subscribe('mqtt的订阅主题', {qos: 2}, (error) => {
              if (!error) {
                  console.log('(mqtt)监听中', '时间:', new Date().toLocaleString())
              } else {
                  console.log('(mqtt)订阅失败')
              }
          })

      })


      // 接收消息处理
      this.global.CompulsoryWs.on('message', (topic, message) => {
          console.log('收到来自', topic, '的消息', message.toString())
      })
      // 断开发起重连
      this.global.CompulsoryWs.on('reconnect', (error) => {
          console.log('(mqtt)正在重连:', error, '时间:', new Date().toLocaleString())
      })
      // 链接异常处理
      this.global.CompulsoryWs.on('error', (error) => {
          console.log('(mqtt)连接失败:', error)
      })

注意:

qos 的三种模式 ,根据自己的需求进行使用
再有就是 你要是进行了全局的赋值 在进行连接的时候 要把那个清理掉 要不然容易出问题

this.global.setCompulsoryWs({})

还有就是版本问题,使用的时候根据自己的要求查看情况,要是出现解决不了的问题,降低版本试试

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值