mqttws.js

mqttws.js

    • 概述
    • 具体使用
      • 引入mqttws.js
      • 客户端实例化
      • 创建连接
      • 注册连接断开处理事件
      • 收到消息回调函数
      • 订阅topic
      • 取消订阅
      • 断开连接
      • 发送消息
    • 参考文章

https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js
https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.min.js

概述

mqttws31 是一个 MQTT(Message Queue Telemetry Transport)客户端库,可以用于在浏览器中实现与 MQTT 代理服务器的通信

mqttws31 提供了一个基于 WebSocket 协议的 MQTT 客户端实现,可以将 MQTT 协议封装在 WebSocket 协议之上,使得客户端可以通过浏览器向 MQTT 代理服务器发送和接收消息。

使用 mqttws31 可以很方便地在浏览器中实现 MQTT 通信,它提供了与标准 MQTT 客户端库相似的 API,包括连接到服务器、发布消息、订阅主题等功能。

由于是用websocket,所以一定要选择服务端里对用的mqtt over websocket端口号,因为请求路径是ws或wss开头

具体使用

引入mqttws.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript"></script>

客户端实例化

var hostname = 'kh.tyzfchina.com.cn',port = 8084,clientId = guid(),
var client = new Paho.MQTT.Client(hostname, port, clientId)

创建连接

var options = {invocationContext: {host: hostname,port: port,path: client.path,clientId: clientId},timeout: timeout,keepAliveInterval: keepAlive,cleanSession: cleanSession,useSSL: ssl,userName: userName,password: password,onSuccess: onConnect, //创建实例成功回调onFailure: function (e) {console.log('创建mq实例失败', e)s = "{time:" + new Date().Format("yyyy-MM-dd hh:mm:ss") + ", onFailure()}"console.log(s)} //创建实例失败回调
}
client.connect(options)//连接服务器并注册连接成功处理事件
function onConnect () {client.subscribe(topic)console.log('订阅topic', topic)
}

注册连接断开处理事件

//注册连接断开处理事件
client.onConnectionLost = onConnectionLost//注册消息接收处理事件
function onConnectionLost (responseObject) {console.log('连接断开了', responseObject)s = "{time:" + new Date().Format("yyyy-MM-dd hh:mm:ss") + ", onConnectionLost()}"if (responseObject.errorCode !== 0) {setTimeout(function () {console.log("连接错误:" + responseObject.errorMessage)isConnetion = falsestartMqtest()}, 1000 * 60)}
}

收到消息回调函数

// 收到消息回调函数
client.onMessageArrived = onMessageArrived// 接收到消息
function onMessageArrived (message) {s = "{time:" + new Date().Format("yyyy-MM-dd hh:mm:ss") + ", onMessageArrived()}"console.log("收到消息:" + message.payloadString);console.log("topic:" + message.destinationName);
}

订阅topic

client.subscribe(topic名称,可选参数qos、OnSuccess、onFailure、invocationContext、timeout);

取消订阅

client.unsubscribe(topic名称, unsubscribeOptions);
//unsubscribeOptions: 可选参数qos、OnSuccess、onFailure、invocationContext、timeout

断开连接

client.disconnect();

发送消息

client.send(topic,payload,qos,retained); 
// topic: 主题
// payload: 内容
// qos: 发送频率
// retained:是否保留(选择true,其他客户端订阅时会自动获取内容)

参考文章

https://blog.csdn.net/qq_42627162/article/details/112877805

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Mac软件]Downie 4.6.34视频下载工具

以下是关于Downie软件的介绍&#xff1a; Downie是一款非常实用的视频下载软件&#xff0c;专门为Mac用户设计。这款软件的使用方法非常简单&#xff0c;只需要将想要下载的视频链接复制到Downie的界面&#xff0c;它就能够自动下载。 Downie最大的特点就是支持的网站非常多&a…

centos7卸载mongodb数据库

如果您已经删除了MongoDB的相关文件&#xff0c;但系统仍然显示已经安装了一个版本&#xff0c;可能是由于之前的MongoDB安装残留导致的。您可以尝试以下步骤来彻底清除MongoDB并重新安装&#xff1a; 卸载MongoDB&#xff1a;使用以下命令卸载MongoDB&#xff1a; sudo yum er…

五大匹配算法

五大匹配算法 五大匹配算法 BF 匹配、RK 匹配、KMP 匹配、BM 匹配、Sunday 匹配。 1、BF 匹配 // BF 匹配&#xff08;暴力匹配&#xff09; public static int bfMatch(String text, String pattern) {char[] t text.toCharArray();char[] p pattern.toCharArray();int i …

vs code git问题:文件明明已加入忽略文件中,还是出现

vs code git问题&#xff1a;文件明明已加入忽略文件中&#xff0c;还是出现 原因&#xff1a; 因为之前这些文件都已经提交过&#xff0c;线上GIT已经存在&#xff0c;已存在就不能忽略&#xff0c; 解决办法&#xff1a; 先要删除这些文件提交上去&#xff0c;然后把这些文…

使用USB转JTAG芯片CH347在Vivado下调试

简介 高速USB转接芯片CH347是一款集成480Mbps高速USB接口、JTAG接口、SPI接口、I2C接口、异步UART串口、GPIO接口等多种硬件接口的转换芯片。 通过XVC协议&#xff0c;将CH347应用于Vivado下&#xff0c;简单尝试可以成功&#xff0c;源码如下&#xff0c;希望可以一起共建&a…

软件系统运维方案

1.项目情况 2.服务简述 2.1服务内容 2.2服务方式 2.3服务要求 2.4服务流程 2.5工作流程 2.6业务关系 2.7培训 3.资源提供 3.1项目组成员 3.2服务保障 点击获取所有软件开发资料&#xff1a;点我获取

一文了解Spring依赖注入时循环依赖问题

目录 什么是循环依赖 凡是Java的循环依赖都会有问题&#xff1f; 为什么Spring循环依赖会有问题&#xff1f; Spring解决循环依赖问题的思路&#xff1f; 设置二级缓存对象池 方案一直接将实例化对象放入早期对象池 方案一缺点 方案二-将实例化对象处理AOP后放入早期对象…

3.生成验证码 + 开发登录、退出功能 + 显示登录信息

目录 1.生成验证码 2.开发登录、退出功能 2.1 开发数据访问层 2.2 开发业务层:实现登录功能

入行IC | 从小白助理级,到总监专家级,到底要经历怎样的成长阶段呢?

《中国集成电路产业人才发展报告》是业内和IC设计、IC人才都息息相关的一份报告。 &#xff08;文末可领全部报告资料&#xff09; * 从报告数据来看&#xff0c;无论在半导体产业的哪个环节&#xff0c;个人发展路径和年薪待遇都是逐级攀升的趋势。 那么从小白助理级&a…

深度学习中的图像处理(基本介绍+示例代码)

一、基本介绍 深度学习中的图像处理是指使用深度学习技术处理图像数据的过程。深度学习在图像处理领域取得了显著的成功&#xff0c;尤其是卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;的出现和发展&#xff0c;使得计算机能够学习和理…

latex英文模板中,输入中文出现空白 解决办法

在导言区加入以下代码即可 \usepackage[UTF8]{ctex}

口袋参谋:找关键词的三种方法!

​如何找热搜关键词&#xff1f;99%的商家都不知道。那么今天可以根据我说的三种方法去做。 第一种方法&#xff1a;利用竞争对手 通过分析竞争对手&#xff0c;正在使用和采取何种优化方法&#xff0c;来帮助你理解市场上正在流行什么样的关键字&#xff0c;这些热词可以直接从…

Java自动化驱动浏览器搜索稻香

下载最新的Chrome浏览器 查看chrome版本&#xff0c;在浏览器地址栏输入&#xff1a;chrome://version/ 下载对应的浏览器驱动&#xff0c;将其放到一个目录中&#xff0c;我放到了D:/chromedriver-win64 导入对应的依赖【注意&#xff1a;不要导入最新的版本&#xff0c;最…

JSP不等于JavaScript

一、什么是jsp&#xff1f; jsp是Servlet设计&#xff0c;中文含义是java服务器页面&#xff0c;java都是在服务器上进行的&#xff0c;一般情况下&#xff0c;返回的值是一个html&#xff0c;所以要依靠浏览器才能预览。 二、什么是JavaScript? JavaScript是一种脚本语言&…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大重点分析

数字化时代银行网点厅堂营销存在以下5大重点&#xff1a; 1、厅堂宣传。应以主推产品作为厅堂宣传的宣传重点&#xff0c;结合视频宣传、平面物料、互动机具、陈列物料等多维度&#xff0c;开展有序重复展示&#xff0c;进而加大吸引客户关注度。 2、产品推荐。在识别出中高端…

开发基于 ChatGPT 分析热点事件并生成文章的网站应用【热点问天】把百度等热点用chatGPT来对热点事件分析海量发文章 开发步骤 多种方式获取利润

这样做的优点&#xff1a; 1.不用每个人都问chatGPT同样的问题。 2.已经生成的&#xff0c;反应快速。 3.内容分析的客观&#xff0c;真实&#xff0c;基于数据&#xff0c;无法造假。 4.无其它目的这种基于 ChatGPT 分析热点事件并生成文章的网站&#xff0c;可以通过多种方式…

纽扣电池/含纽扣电池产品上架亚马逊各国法规标准要求16 CFR 第 1700.15/20 ANSI C18.3M(瑞西法案认证)

亚马逊纽扣电池认证标准有哪些&#xff1f; 一、美国站&#xff08;亚马逊纽扣电池/含纽扣电池商品&#xff09;安全测试标准要求&#xff1a; 16 CFR 第 1700.15 、16 CFR 第 1700.20 ANSI C18.3M、警示标签声明要求&#xff08;第 117-171 号公众法&#xff09; 二、澳大…

Linux应用开发基础知识——网络通信编程(九)

前言&#xff1a; 通过学习为后续Linux网络编程奠定基础。首先介绍网络编程的概念&#xff0c;即网络协议分层&#xff0c;旨在帮助读者对网络建立初步的、全面立体的认识&#xff0c;其次介绍包括协议、端口、地址等&#xff1b;最后介绍应用非常广泛的传输控制协议&#xff0…

CentOS8部署Skywalking(非容器方式)

一、官网下载安装包 二、安装 #tar -zxf apache-skywalking-apm-9.6.0.tar.gz #mv apache-skywalking-apm-9.6.0 skywalking #cd /opt/skywalking 修改配置文件 #vi /opt/skywalking/config/application.yml #vi vi /opt/skywalking/webapp/application.yml 三、运行 ./bin…

NLP | SimKGC论文详解及项目实现

本文主要讲解了论文SimKGC&#xff1a;基于预训练语言模型的简单对比知识图谱补全的论文总结以及项目实现。 论文题目&#xff1a;2022_SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models 论文地址&#xff1a;2022.acl-long.295.pdf (…