当前位置: 首页 > news >正文

vue 项目中使用 mqtt

1、在html 中用cdn方式引入

 <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>

2、封装代码 mqtt_connect.js

// import * as mqtt from 'mqtt/dist/mqtt.min'
// 不知道为什么 我用引入的方式不成,就在html 用的cdn方式接入了
import { Message } from 'element-ui'
let client = {}
// 连接服务器
/*** params:* @options 参数*/
export function connectFn({ username, password, url, topic, clientId }, callBack) {const options = {username,password,cleanSession: false,keepAlive: 10,clientId: clientId,connectTimeout: 4000}client = mqtt.connect(url, options)client.on('connect', (e) => {Message.success('成功连接服务器')console.log('成功连接服务器:', e)// 订阅主题console.log(topic, 'topictopic')client.subscribe(topic, { qos: 1 }, (err) => {if (!err) {Message.success('订阅成功')console.log('订阅成功')} else {Message.error('消息订阅失败!')console.log('消息订阅失败!')}})})// 重新连接//   reconnect()// 是否已经断开连接mqttError()// 监听获取信息getMessage(callBack)
}
// 发布消息 @topic主题  @message发布内容
export function publish(topic, message) {if (!client.connected) {console.log('客户端未连接')return}client.publish(topic, message, { qos: 1 }, (err) => {if (!err) {console.log('主题为' + topic + '发布成功')}})
}
// 监听接收消息
function getMessage(callBack) {client.on('message', (topic, message) => {if (message) {callBack(topic, message)}})
}
// 监听服务器是否连接失败
function mqttError() {client.on('error', (error) => {console.log('连接失败:', error)client.end()})
}
// 取消订阅
export function unsubscribe(topicList) {client.unsubscribe(topicList, (error) => {console.log('主题为' + topicList + '取消订阅成功', error)})
}
// 断开连接
export function unconnect() {client.end()client = nullMessage.warning('服务器已断开连接!')console.log('服务器已断开连接!')
}
// 监听服务器重新连接
function reconnect() {client.on('reconnect', (error) => {console.log('正在重连:', error)})
}

3.vue页面中使用

<script>
import { connectFn, unsubscribe, unconnect } from '@/utils/mqtt_connect'export default {data() {return {topicList: []}},mounted() {this.topicList.push(`xxxxx`)connectFn({url: 'xxxxx',username: 'xxx',password: 'xxx',topic: `xxxx`,clientId: `xxxx`},this.getMessage)},beforeDestroy() {unsubscribe(this.topicList)unconnect()},methods: {getMessage(topic, message) {if (message) {console.log('收到来着', topic, '的信息', message.toString())const res = JSON.parse(message.toString())switch (topic) {case 'topic/username':this.username = resbreakcase 'topic/class':this.class = resbreakdefault:return}}}}
}
</script>

相关文章:

vue 项目中使用 mqtt

1、在html 中用cdn方式引入 <script src"https://unpkg.com/mqtt/dist/mqtt.min.js"></script> 2、封装代码 mqtt_connect.js // import * as mqtt from mqtt/dist/mqtt.min // 不知道为什么 我用引入的方式不成&#xff0c;就在html 用的cdn方式接入了…...

linux shell操作 - 05 进程 与 IO 模型

文章目录 计算机内存分配进程与子进程流IO模型非阻塞IOIO多路复用网络IO模型简单的socket并发的socket 计算机内存分配 一个32位&#xff0c;4G内存的计算机&#xff0c;内存使用分为两部分&#xff1a; 操作系统内核空间&#xff1b;应用程序的用户空间使用的操作系统不同&a…...

让SOME/IP运转起来——SOME/IP系统设计(下)之数据库开发

上一篇我们介绍了SOME/IP矩阵的设计流程&#xff0c;这一篇重点介绍如何把SOME/IP矩阵顺利的交给下游软件团队进行开发。 车载以太网通信矩阵开发完成后&#xff0c;下一步应该做什么&#xff1f; 当我们完成SOME/IP矩阵开发&#xff0c;下一步需要把开发完成的矩阵换成固定格…...

Mybatis反射工厂类DefaultReflectorFactory

DefaultReflectorFactory是反射工厂接口ReflectorFactory的默认实现&#xff0c;其主要是实现了对反射对象Reflector的创建和缓存。 有三个方法&#xff1a; // 判断是否开启缓存boolean isClassCacheEnabled();// 设置是否缓存void setClassCacheEnabled(boolean classCacheEn…...

antDesignPro a-table样式二次封装

antDesignPro是跟element-ui类似的一个样式框架&#xff0c;其本身就是一个完整的后台系统&#xff0c;风格样式都很统一。我使用的是antd pro vue&#xff0c;版本是1.7.8。公司要求使用这个框架&#xff0c;但是UI又有自己的一套设计。这就导致我需要对部分组件进行一定的个性…...

找免费4K高清图片素材,就上这6个网站

使用图片素材怕侵权&#xff1f;那就上这6个网站&#xff0c;免费下载&#xff0c;4K高清无水印&#xff0c;赶紧收藏起来~ 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYxMjky 一个很大的素材库&#xff0c;站内主要还是以设计素材为主&#xff0c;像图片素材就有上百…...

代码随想录算法训练营第35天| 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

JAVA代码编写 860.柠檬水找零 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须…...

成为AI产品经理——TPR、FPR、ROC、AUC

目录 一、PR图、BEP 1.PR图 2.BEP 二、灵敏度、特异度 1.灵敏度 2.特异度 三、真正率、假正率 1.真正率 2.假正率 三、ROC、AUC 1.ROC 2.AUC 四、KS值 一、PR图、BEP 1.PR图 二分类问题模型通常输出的是一个概率值&#xff0c;我们需要设定一个阈值&#xff…...

java: Internal error in the mapping processor: java.lang.NullPointerException

启动java项目出错&#xff0c;其他人工程没有问题&#xff0c;别着急。 java: Internal error in the mapping processor: java.lang.NullPointerException at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.j…...

TCP知识点

TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层协议&#xff0c;广泛应用于互联网。下面是TCP的一些知识点&#xff1a; TCP是一种可靠的协议&#xff0c;采用三次握手建立连接和四次挥手断开…...

大语言模型(LLMs)在 Amazon SageMaker 上的动手实践(一)

本期文章&#xff0c;我们将通过三个动手实验从浅到深地解读和演示大语言模型&#xff08;LLMs&#xff09;&#xff0c;如何结合 Amazon SageMaker 的模型部署、模型编译优化、模型分布式训练等。 实验一&#xff1a;使用 Amazon SageMaker 构建基于开源 GPT-J 模型的对话机器…...

顶级数据恢复工具—— 最全的15个数据恢复软件榜单

在这个信息为王的数字时代&#xff0c;关键数据的丢失对个人和企业来说都可能是灾难性的。无论是由于意外删除、硬件故障还是恶意攻击&#xff0c;拥有强大的数据恢复解决方案都是至关重要的。在本综合指南中&#xff0c;我们将探索市场上最好的数据恢复软件&#xff0c;包括顶…...

【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解

【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解前言Inception-ResNet讲解Inception-ResNet-V1Inception-ResNet-V2残差模块的缩放(Scaling of the Residuals)Inception-…...

Ubuntu 22.03 LTS 安装deepin-terminal 实现 终端 分屏

deepin-terminal 安装 源里面自带了这个软件&#xff0c;可以直接装 sudo apt install deepin-terminal 启动 按下Win键&#xff0c;输入deep即可快速检索出图标&#xff0c;点击启动 效果 分屏 CtrlShiftH 水平分割 CtrlShiftJ 垂直分割 最多分割成四个小窗口&#xff0…...

HTTP协议,Web框架回顾

HTTP 请求协议详情 -请求首行---》请求方式&#xff0c;请求地址&#xff0c;请求协议版本 -请求头---》key:value形式 -referer&#xff1a;上一次访问的地址 -user-agenet&#xff1a;客户端类型 -name&#xff1a;lqz -cookie&…...

el-checkbox 对勾颜色调整

对勾默认是白色 改的时候一直在试着改color人&#xff0c;其实不对。我用的是element ui 的复选框 /* 对勾颜色调整 */ .el-checkbox__inner::after{/* 是改这里的颜色 */border: 2px solid #1F7DFD; border-left: 0;border-top: 0;}...

系统管理精要:深度探索 Linux 监控与管理利器

前言 系统管理在 Linux 运维中扮演着至关重要的角色&#xff0c;涵盖了系统的配置、监控和维护。了解这些方面的工具和技术对于确保系统稳定运行至关重要。本文将着重介绍系统管理的关键部分&#xff0c;包括配置系统、监控系统状态和系统的日常维护&#xff0c;并以 top 和 vm…...

vue3之echarts渐变柱状图

vue3之echarts渐变柱状图 效果&#xff1a; 核心代码&#xff1a; <template><div class"abnormal"><div class"chart" ref"chartsRef"></div></div> </template><script setup> import * as echa…...

有一种浪漫,叫接触Linux

大家好&#xff0c;我是五月。 嵌入式开发 嵌入式开发产品必须依赖硬件和软件。 硬件一般使用51单片机&#xff0c;STM32、ARM&#xff0c;做成的产品以平板&#xff0c;手机&#xff0c;智能机器人&#xff0c;智能小车居多。 软件用的当然是以linux系统为蓝本&#xff0c…...

构建 App 的方法

目录 构建 App 使用 App 设计工具以交互方式构建 App 使用 MATLAB 函数以编程方式构建 App 构建实时编辑器任务 可以使用 MATLAB 来构建可以集成到各种环境中的交互式用户界面。可以构建两种类型的用户界面&#xff1a; App - 基于用户交互执行操作的自包含界面 实时编辑器…...

ClawdBot快速入门:详细教程解决devices approve授权问题

ClawdBot快速入门&#xff1a;详细教程解决devices approve授权问题 1. ClawdBot简介&#xff1a;你的本地AI助手 ClawdBot是一个可以在个人设备上运行的个人AI助手&#xff0c;它使用vLLM提供后端模型能力。与依赖云端服务的AI助手不同&#xff0c;ClawdBot完全在本地运行&a…...

ATCODER ABC C题解毖

这&#xff0c;是一个采用C精灵库编写的程序&#xff0c;它画了一幅漂亮的图形&#xff1a; 复制代码 #include "sprites.h" //包含C精灵库 Sprite turtle; //建立角色叫turtle void draw(int d){for(int i0;i<5;i)turtle.fd(d).left(72); } int main(){ …...

别再纠结了!用Mermaid还是PlantUML?我根据5个真实项目经验给你答案

技术选型实战&#xff1a;PlantUML与Mermaid的五大真实项目决策指南 在技术文档和系统设计领域&#xff0c;图表即代码(Diagrams as Code)工具已经成为现代开发者的标配。过去三年里&#xff0c;我参与了从开源项目到企业级系统的多个技术方案设计&#xff0c;深刻体会到工具选…...

Autoware.Auto深度解析:基于ROS 2的下一代自动驾驶框架

1. Autoware.Auto是什么&#xff1f;为什么它值得关注&#xff1f; 如果你正在研究自动驾驶技术&#xff0c;一定听说过Autoware这个名字。作为全球首个"一体化"开源自动驾驶软件&#xff0c;Autoware.AI已经在这个领域深耕多年。但今天我要聊的是它的升级版本——Au…...

终极OpenCore安装指南:在PC上打造专业级Hackintosh系统

终极OpenCore安装指南&#xff1a;在PC上打造专业级Hackintosh系统 【免费下载链接】OpenCore-Install-Guide Repo for the OpenCore Install Guide 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Install-Guide OpenCore是一个现代化的引导加载器&#xff0c;…...

CLIP模型调优新思路:用CoCoOp实现动态提示学习(附代码实战)

CLIP模型调优新思路&#xff1a;用CoCoOp实现动态提示学习&#xff08;附代码实战&#xff09; 在计算机视觉与自然语言处理的交叉领域&#xff0c;视觉语言模型正掀起一场革命。CLIP作为这一领域的里程碑式模型&#xff0c;通过对比学习将图像和文本映射到同一语义空间&#x…...

为什么EuroSAT成为遥感图像分类的黄金标准?

为什么EuroSAT成为遥感图像分类的黄金标准&#xff1f; 【免费下载链接】EuroSAT EuroSAT: Land Use and Land Cover Classification with Sentinel-2 项目地址: https://gitcode.com/gh_mirrors/eu/EuroSAT 在人工智能与地球观测技术融合的时代&#xff0c;遥感图像分类…...

造相Z-Image文生图模型v2避坑指南:显存优化与参数设置技巧

造相Z-Image文生图模型v2避坑指南&#xff1a;显存优化与参数设置技巧 1. 为什么需要关注显存优化 在本地部署造相Z-Image文生图模型v2时&#xff0c;显存管理是决定成败的关键因素。这个拥有20亿参数的模型虽然经过深度优化&#xff0c;但在实际使用中仍然可能遇到显存不足的…...

MetaTube插件:如何为你的Jellyfin/Emby媒体库注入智能元数据管理能力?

MetaTube插件&#xff1a;如何为你的Jellyfin/Emby媒体库注入智能元数据管理能力&#xff1f; 【免费下载链接】jellyfin-plugin-metatube MetaTube Plugin for Jellyfin/Emby 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metatube 你是否曾经为Jelly…...

8大网盘直链解析工具:告别下载限速,实现本地高速下载

8大网盘直链解析工具&#xff1a;告别下载限速&#xff0c;实现本地高速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云…...