我的编程空间,编程开发者的网络收藏夹
学习永远不晚

详解JSHTMLWeb端使用MQTT通讯测试

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解JSHTMLWeb端使用MQTT通讯测试

系统:windows10 64bit

开发工具:UEdit64

运行环境:360安全浏览器 12.1

测试工具:MQTTBox

一、编写简单布局

布局效果:

布局代码:

<body style="margin: 0 auto;">
	<div style="width: 500px;">服务器地址:<input style="float: right;width: 300px;" id="MQTT_ServerAdd" value="ws://www.passingworld.vip:8083/mqtt"></div>	
	<div style="width: 500px;">心跳时间  :<input style="float: right;width: 300px;" id="MQTT_ConnHeartbeatTime" value="30"></div>		
	<div style="width: 500px;">用户名    :<input style="float: right;width: 300px;" id="MQTT_UserName" value="admin"></div>	
	<div style="width: 500px;">密码      :<input style="float: right;width: 300px;" id="MQTT_PassWord" value="public"></div>	
	
	<div> 
		<button onclick="MQTT_ConnServer()">连接服务器</button>                                       
	</div>		
 
	<div style="margin-top: 20px;">
		订阅消息<input id="MQTT_Subscribe_Msg"> 
		QoS<select id="MQTT_Subscribe_QoS">
			<option>0_Almost_Once</option>
			<option>1_Atleast_Once</option>
			<option>2_Exactly_Once</option>
		</select> 
		<button onclick="Add_MQTT_Subscribe()">添加订阅信息</button>                                       
	</div>
	
	<div style="margin-top: 20px;">
		订阅列表
	</div>	
	<div>
		<table style="padding: 1px;width: 700px;margin-top: 5px;" border="1">
			<tr style="background-color: #919191;">
				<td>订阅消息</td>
				<td>QoS</td>
				<td>操作</td>
			</tr>
		</table>
	</div>
	<div style="margin-top: 20px;">
		接收消息
	</div>		
	<div>
		<textarea id="textareaid" rows="5" cols="30" class="message1" style="width: 100%;height: 300px; min-height: 100px;"></textarea>
	</div>	
	<div> 
		发布点:<input id="MQTT_Publish_Text"> 
		发布消息:<input id="MQTT_Publish_Msg">  
		<button onclick="Send_MQTT_Msg()">发送消息</button>                                       
	</div>
</body>

二、编写JS代码

连接代码

function MQTT_Connect(serveradd,KeepAlive,UserName,PassWord) {
		  //MQTT连接的配置
		  MQTT_Options: {
			  protocolVersion: 4; //MQTT连接协议版本
			  clientId: 'miniTest22222';
			  clean: false;
			  keepalive: KeepAlive;
			  password: UserName;
			  username: PassWord;
			  reconnectPeriod: 1000;			//1000毫秒,两次重新连接之间的间隔
			  connectTimeout: 10 * 1000; 		//1000毫秒,两次重新连接之间的间隔
			  resubscribe: true; //如果连接断开并重新连接,则会再次自动订阅已订阅的主题(默认true)
		  };
			//开始连接
			MQTT_Client = mqtt.connect(serveradd, this.MQTT_Options);
			MQTT_Client.on('connect',
				function (connack) {
					console.log('MQTT连接成功')
				})
			//服务器下发消息的回调
			MQTT_Client.on("message", function (topic, payload) {
				console.log(" 收到 topic:" + topic + " , payload :" + payload)
				var str = document.getElementById("textareaid").value;
	  		document.getElementById("textareaid").value = str + "\n"+"收到 topic:" + topic + " , payload :" + payload;
			})
			//服务器连接异常的回调
			MQTT_Client.on("error", function (error) { console.log("MQTT Server Error 的回调" + error) })
			//服务器重连连接异常的回调
			MQTT_Client.on("reconnect", function () { console.log("MQTT Server Reconnect的回调") })
			//服务器连接异常的回调
			MQTT_Client.on("offline", function (errr) { console.log("MQTT Server Offline的回调" + errr) })
		};

订阅一个主题代码

	MQTT_SubOne = function(Topic) {
		var ok = false;
		if (MQTT_Client && MQTT_Client.connected) {
			MQTT_Client.subscribe(Topic, function (err, granted) {
				if (!err) { 
					console.log('订阅主题 ' + Topic + ' 成功') 
					ok = true;
				}else { console.log('订阅主题 ' + Topic + ' 失败') 
					ok = false;
				}
			})
		} else {
			console.log('请先连接服务器')
			ok = false;
		}
		return ok;
	};

订阅多个主题代码

	function MQTT_SubMany() {
		if (MQTT_Client && MQTT_Client.connected) {
			MQTT_Client.subscribe({ 'Topic1': { qos: 0 }, 'Topic2': { qos: 1 } }, function (err, granted) {
				if (!err) {
					console.log('订阅多主题成功')
				} else {
					console.log('订阅多主题失败')
				}
			})
		} else {
			console.log('请先连接服务器')
		}
	};

发布消息代码

	MQTT_PubMsg = function(Topic, Msg) {
		if (MQTT_Client && MQTT_Client.connected) {
			MQTT_Client.publish(Topic, Msg);
			console.log('发布成功->' + Topic + '->' + Msg)
		} else {
			console.log('请先连接服务器')
		}
	};

取消订阅一个主题代码

	function MQTT_UnSubOne(Topic) {
		if (MQTT_Client && MQTT_Client.connected) {
			MQTT_Client.unsubscribe(Topic);
		} else {
			console.log('请先连接服务器')
		}
	};

 取消订阅多个主题代码

	function MQTT_UnSubOne(Topic) {
		if (MQTT_Client && MQTT_Client.connected) {
			MQTT_Client.unsubscribe(Topic);
		} else {
			console.log('请先连接服务器')
		}
	};

三、实验效果

到此这篇关于JS HTML Web端使用MQTT通讯测试的文章就介绍到这了,更多相关Web端使用MQTT通讯测试内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

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

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

详解JSHTMLWeb端使用MQTT通讯测试

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解JSHTMLWeb端使用MQTT通讯测试

这篇文章主要介绍了JSHTMLWeb端使用MQTT通讯测试,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-16

JS、HTML、Web端怎么使用MQTT通讯测试

本文小编为大家详细介绍“JS、HTML、Web端怎么使用MQTT通讯测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS、HTML、Web端怎么使用MQTT通讯测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
2023-07-06

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

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

vue中如何使用mqtt服务端实现即时通讯

小编给大家分享一下vue中如何使用mqtt服务端实现即时通讯,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MQTT协议MQTT(Message Queuing T
2023-06-20

怎么使用telnet命令测试端口连通性

这篇文章主要为大家展示了“怎么使用telnet命令测试端口连通性”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用telnet命令测试端口连通性”这篇文章吧。telnet命令通常用来远程登录
2023-06-27

服务器使用UDP通讯127.0.0.1测试成功连接服务器却通讯失败

首先看看本人情况 解释一下: 1:左边窗口是模拟服务程序,功能是收到消息后把消息打印出来,并把收到的消息再发回给发送消息的主机 2:右边窗口是模拟客户程序,功能是将输入的消息发送给服务程序的主机,并将接收的消息打印出来 3:程序均采用的是
2023-08-22

一文详解e2e测试之cypress的使用

这篇文章主要介绍了e2e测试之cypress的使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-17

ViewModel中StateFlow和SharedFlow单元测试使用详解

这篇文章主要为大家介绍了ViewModel中StateFlow和SharedFlow单元测试使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-17

大型项目里Flutter测试应用实例集成测试深度使用详解

这篇文章主要为大家介绍了大型项目里Flutter测试应用实例集成测试深度使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-26

Go单元测试利器testify使用示例详解

这篇文章主要为大家介绍了Go单元测试利器testify使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-15

Python自动化测试框架之unittest使用详解

unittest是Python自动化测试框架之一,提供了一系列测试工具和接口,支持单元测试、功能测试、集成测试等多种测试类型。unittest使用面向对象的思想实现测试用例的编写和管理,可以方便地扩展和定制测试框架,支持多种测试结果输出格式
2023-05-18

编程热搜

目录