文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue下怎么使用mqtt服务端实现即时通讯

2023-07-04 13:24

关注

这篇文章主要介绍“vue下怎么使用mqtt服务端实现即时通讯”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue下怎么使用mqtt服务端实现即时通讯”文章能帮助大家解决问题。

MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。

MQTT是轻量级基于代理的发布/订阅的消息传输协议,它可以通过很少的代码和带宽和远程设备连接。例如通过卫星和代理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协议开销小和能高效的向一和多个接收者传递信息,故同样适用于称动应用设备上。

vue利用mqtt服务端实现即时通讯

在大部分项目中,前后端交互只是前端请求后端的接口,拿到数据后再处理,前段时间我手上的一个项目需要用到mqtt,使用后觉得真神奇,只需要订阅就能实时获取到数据,废话不多说,妹妹给你们上步骤!

1.在vue项目中安装mqtt.js

npm install mqtt --save

2.在项目的main.js或者在需要用到的vue页面上引用

import mqtt from 'mqtt'

3.在vue页面的data中定义一个client对象,方便后面使用

client: {}

ok,接下来就是重点了,首先我们得连接mqtt,连接mqtt的方法有个回调函数,我接下来就把订阅的方法写在连接成功后的回调里,这样能保证不出错,上代码!

4.连接mqtt并订阅

  //连接服务器    connect() {      let options = {        username: "xxx",        password: "xxxx",        cleanSession : false,        keepAlive:60,        clientId: 'mqttjs_' + Math.random().toString(16).substr(2, 8),        connectTimeout: 4000      }      this.client = mqtt.connect('ws://192.168.xxx.xx:8083/mqtt',options);      this.client.on("connect", (e)=>{        console.log("成功连接服务器:",e);        //订阅三个名叫'top/#', 'three/#'和'#'的主题        this.client.subscribe(['top/#', 'three/#', '#'], { qos: 1 }, (err)=> {          if (!err) {            console.log("订阅成功");            //向主题叫“pubtop”发布一则内容为'hello,this is a nice day!'的消息            this.publish("pubtop", 'hello,this is a nice day!')          } else {            console.log('消息订阅失败!')          }        });      });      //重新连接      this.reconnect()      //是否已经断开连接      this.mqttError()      //监听获取信息      this.getMessage()    }

5.发布消息方法

//发布消息@topic主题  @message发布内容    publish(topic,message) {      if (!this.client.connected) {        console.log('客户端未连接')        return      }      this.client.publish(topic,message,{qos: 1},(err) => {        if(!err) {          console.log('主题为'+topic+ "发布成功")        }      })    }

6.监听并接收上面订阅的三个主题的信息

//监听接收消息    getMessage() {      this.client.on("message", (topic, message) => {        if(message) {          console.log('收到来着',topic,'的信息',message.toString())          const res = JSON.parse(message.toString())          //console.log(res, 'res')          switch(topic) {             case 'top/#' :               this.msg = res               break;             case 'three/#' :               this.msg = res               break;             case 'three/#' :               this.msg = res               break;             default:               return               this.msg = res           }           this.msg = message        }      });    },

7.监听服务器是否连接失败

//监听服务器是否连接失败    mqttError() {      this.client.on('error',(error) => {        console.log('连接失败:',error)        this.client.end()      })    },

8.取消订阅

//取消订阅    unsubscribe() {      this.client.unsubscribe(this.mtopic, (error)=> {        console.log('主题为'+ this.mtopic+'取消订阅成功',error)      })    },

9.断开连接

//断开连接    unconnect() {      this.client.end()      this.client = null      console.log('服务器已断开连接!')    },

10.监听服务器重新连接

//监听服务器重新连接    reconnect() {      this.client.on('reconnect', (error) => {          console.log('正在重连:', error)      });    },

vue是什么

Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。

关于“vue下怎么使用mqtt服务端实现即时通讯”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯