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

秀洲住房与建设局网站做足球行业深度内容的网站

秀洲住房与建设局网站,做足球行业深度内容的网站,网络广告设计,做胎压的网站1、MQTT协议 1.1、MQTT介绍 MQTT#xff08;Message Queuing Telemetry Transport#xff09;是一种轻量级的、基于发布/订阅模式的通信协议#xff0c;通常用于物联网设备之间的通讯。它具有低带宽、低功耗和开放性等特点#xff0c;适合在网络带宽有限或者网络连接不稳定…1、MQTT协议 1.1、MQTT介绍 MQTTMessage Queuing Telemetry Transport是一种轻量级的、基于发布/订阅模式的通信协议通常用于物联网设备之间的通讯。它具有低带宽、低功耗和开放性等特点适合在网络带宽有限或者网络连接不稳定的环境下使用。MQTT协议使用TCP/IP协议栈进行通讯支持多种编程语言和平台并且能够提供可靠的消息传递机制。 在MQTT中设备可以发布消息到特定的主题topic同时其他设备可以订阅这些主题以接收相应的消息。这种发布/订阅模式使得设备之间的通讯更加灵活和高效。MQTT还支持三种服务质量等级至多一次at most once、至少一次at least once和恰好一次exactly once以满足不同场景下对消息传递可靠性的需求。 优点代码量少开销低带宽占用小即时通讯协议。 1.2、MQTT概念 订阅(Subscribtion)订阅包含主题筛选器 Topic Filter 和最大服务质量 QoS 。订阅会与一个会话 Session 关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。 会话Session每个客户端与服务器建立连接后就是一个会话客户端和服务器之间有状态交互。会话存在于一个网络之间也可能在客户端和服务器之间跨越多个连续的网络连接。 主题名Topic Name连接到一个应用程序消息的标签该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。需要注意的是 MQTT 中消息主题按照层级命名使用 ‘/’ 进行分割。此外主题中可以使用通配符进行多个主题或多层级的订阅有两种常见的通配符 单层通配符 单层通配符只能匹配一层的主题例如 China/Beijing/ 可以匹配的只有 Beijing 这个主 题下面一层的主题例如 Xicheng, DongCheng, Xuanwu 等等。 多层通配符 # 顾名思义多层通配符就是可以匹配多个层级的主题例如 China/# 可以匹配到的主题可能有China/Beijing/Dongcheng, China/Shanghai/PuDong 等等。 主题筛选器Topic Filter一个对主题名通配符筛选器在订阅表达式中使用表示订阅所匹配到的多个主题。 消息订阅消息订阅者所具体接收的内容。 1.3、MQTT中的角色 Publisher 和 Subscriber 为客户端Broker 为服务器端消息主题为消息类型Broker 根据 Topic 过滤消息并将消息向客户端推送。 MQTT 中用 QoS 表示服务质量 MQTT 协议中有三种服务质量 (QoS) 1 QoS 0 至多一次可能会出现丢包的情况使用在对实时性要求不高的情况例如将此服务质量与通信环境传感器数据一起使用。 对于是否丢失个别读取或是否稍后立即发布新的读取并不重要。 2 QoS 1, 至少一次保证包会到达目的地但是可能出现重包。 3 QoS 2, 刚好一次保证包会到达目的地且不会出现重包的现象。 客户端 Publisher 和 Subscriber 都属于客户端。 发布应用消息给其它相关的客户端。 订阅以请求接受相关的应用消息。 取消订阅以移除接受应用消息的请求。 从服务端断开连接 服务器 服务器端即所谓的 MQTT Broker 服务器。 接受来自客户端的网络连接。 接受客户端发布的应用消息。 处理客户端的订阅和取消订阅请求。 转发应用消息给符合条件的已订阅客户端。 MQTT 提供的公共服务器端 Broker 有 test.mosquitto.orgbroker.hivemq.comiot.eclipse.org 2、基于公共服务示例 在次选择使用EMQX提供的免费MQTT公共服务器但同样可以选择其他任何MQTT broker。The Free Global Public MQTT Broker | Try Now | EMQ (emqx.com) Broker: broker.emqx.io TCP Port: 1883 Websocket Port: 8083 python库pip install paho-mqtt1.6.1 消息发布代码pub.py import time import random from paho.mqtt import client as mqtt_clientbroker broker.emqx.io port 1883 topic /flask/mqtt # generate client ID with pub prefix randomly client_id fpython-mqtt-{random.randint(0, 1000)}def connect_mqtt():def on_connect(client, userdata, flags, rc):if rc 0:print(Connected to MQTT Broker!)else:print(Failed to connect, return code %d\n, rc)client mqtt_client.Client(client_id)client.on_connect on_connectclient.connect(broker, port)return clientdef publish(client):msg_count 0while True:time.sleep(1)msg fmessages: {msg_count}result client.publish(topic, msg)# result: [0, 1]status result[0]if status 0:print(fSend {msg} to topic {topic})else:print(fFailed to send message to topic {topic})msg_count 1def run():client connect_mqtt()client.loop_start()publish(client)if __name__ __main__:run() 运行打印结果 消息订阅代码sub.py import random from paho.mqtt import client as mqtt_clientbroker broker.emqx.io port 1883 topic /flask/mqtt # generate client ID with pub prefix randomly client_id fpython-mqtt-{random.randint(0, 100)}def connect_mqtt() - mqtt_client:def on_connect(client, userdata, flags, rc):if rc 0:print(Connected to MQTT Broker!)else:print(Failed to connect, return code %d\n, rc)client mqtt_client.Client(client_id)client.on_connect on_connectclient.connect(broker, port)return clientdef subscribe(client: mqtt_client):def on_message(client, userdata, msg):print(fReceived {msg.payload.decode()} from {msg.topic} topic)client.subscribe(topic)client.on_message on_messagedef run():client connect_mqtt()subscribe(client)client.loop_forever()if __name__ __main__:run() 运行打印结果 可以看到发布和订阅成功。注意每个客户端的ID唯一不能重复 3、基于Apollo服务示例 3.1、安装Apollo服务 服务器端搭建 Index of /dist/activemq/activemq-apollo/1.7.1 解压并打开目标如下 Apollo中间件其实是免安装的我们只需要下载apache-apollo-1.7.1-windows-distro.zip,然后解压到某个文件夹就可以了。在这里我解压到D:\dist\apache-apollo-1.7.1。在apache-apollo-1.7.1/bin目录下打开终端执行命令apollo create myapollo 若出现如下错误 Loading configuration file ‘D:\phpStudy\apache-apollo-1.7.1\bin\mybroker\etc\apollo.xml’.Startup failed: java.lang.NoClassDefFoundError: javax/xml/bind/ValidationEventHandler处理方式换上jdk1.8版本即可。 然后在生成的myapollo目录的bin目录下执行pollo-broker.cmd run结果如下 服务搭建成功进入后台管理打开网页输入ip : 61680 进入后台管理 默认用户名admin 密码 password例如http://127.0.0.1:61680 3.2、示例代码 本地服务基础信息 host127.0.0.1 port 61613 用户名admin 密码password python库pip install paho-mqtt1.6.1 发布主题publish.py import sys import time import paho.mqtt.client as mqttdef on_connect(client, userdata, flags, rc):print(Connected with result code str(rc))def on_subscribe(client, userdata, mid, granted_qos):print(消息发送成功)client mqtt.Client(protocol3) client.username_pw_set(admin, password) client.on_connect on_connect client.on_subscribe on_subscribe client.connect(host127.0.0.1, port61613, keepalive60) # 订阅频道 time.sleep(1)i 0 while True:try:# 发布MQTT信息sensor_data test str(i)client.publish(topicpublic, payloadsensor_data, qos0)time.sleep(5)i 1except KeyboardInterrupt:print(EXIT)client.disconnect()sys.exit(0) 订阅主题subscribe.py import time import paho.mqtt.client as mqtt# The callback for when the client receives a CONNACK response from the server. def on_connect(client, userdata, flags, rc):if rc 0:print(连接成功)print(Connected with result code str(rc))def on_message(client, userdata, msg):print(msg.topic str(msg.payload))client mqtt.Client(protocol3) client.username_pw_set(admin, password) client.on_connect on_connect client.on_message on_message client.connect(host127.0.0.1, port61613, keepalive60) # 订阅频道 time.sleep(1)# client.subscribe(public) client.subscribe([(public, 0), (test, 2)]) # 订阅 client.loop_forever() 执行脚本后正确大小消息。浏览器可见连接记录。 4、EMQX客户端工具 下载地址MQTTX 下载选择适合您的平台立即开始使用 MQTTX。https://mqttx.app/zh/downloads。 4.1、公共服务测试消息接收 创建连接 Host为代码中定义好的 broker.emqx.io Port为代码中定义好的 1883 用户名、密码根据需要添加 添加订阅 主题为/flask/mqtt 在MQTTX中发布消息 测试成功。 4.2、自建服务测试消息接收 MQTT版本选择3.1.1以下参数与服务保持一致 host127.0.0.1 port 61613 用户名admin 密码password 其它测试步骤一样。创建主题测试 5、EMQX代理服务器 windows下搭建MQTT代理服务与Apollo服务功能一样更方便好用下载地址https://www.emqx.io/zh/downloads 下载后解压进入目录bin文件下执行emqx start  打开浏览器输入 http://localhost:18083 进入EMQ的web控制台输入用户名admin 密码public 进行登录。登录进入后界面如下 至此代理服务器已经创建完成客户端就可以连接代理服务器进行消息的分发和订阅 附录 java1.8.1下载地址Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#java8-windows 参考 1、嵌入式QT- QT使用MQTT 嵌入式QT- QT使用MQTT_qt mqtt-CSDN博客 2、Python实现通信协议mqtt5星mqtt flask 【小沐学Python】Python实现通信协议mqtt_python mqtt-CSDN博客
http://www.ho-use.cn/article/10821561.html

相关文章:

  • 漂亮的网站框架wordpress错误代码500
  • 网站模版 优帮云山东住房和城乡建设厅网站
  • 中国做的电脑系统下载网站网站建设 应酷
  • 村建站什么部门企业咨询服务公司经营范围
  • 新手怎样做网络营销推广长春百度关键词优化
  • 色系网站.莆田网站建设
  • 黄骅市网站建设价格临沂网站优化如何
  • 南昌网站排名优化报设计网页的详细步骤
  • 二手房房产网站建设设计海报
  • 展示网站系统架构设计safari浏览器
  • 商务网站规划与建设wordpress网站数据库备份
  • 企业网站系统手机版用书籍上的文章做网站SEO
  • 网站开发课程教学目标软件商店oppo下载
  • 河东天津网站建设asp网站密码
  • 贵州省建设厅网站官网wordpress中文修改
  • 资源网站都有哪些网站规划的任务
  • 网站标题怎么写py怎么做网站
  • wordpress站群代网站文章百度不收录
  • 黑龙江省建设银行官网站首页企业网站推广的方式有哪些
  • 建设工程安全事故在哪个网站查西湖区外贸网站建设
  • WordPress网站htm地图怎样健建设一个有利于优化的网站
  • 高端品牌鞋子排行榜前十名安徽网站关键字优化
  • 网站建设项目背景修改仪表盘WordPress
  • 河南商都建设有限公司网站特别炫酷的网站
  • 北京网站优化网如何做视频类网站
  • 济南阿里科技网站建设有限公司软文广告属于什么营销
  • 做家常便饭网站南京网站制作电话
  • 支付网站开发建设费用怎么入账a5站长网网站交易
  • 网站建设迅雷怎样做免费抽皮肤的网站
  • 网站背景图中国室内设计者联盟官网