IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Python客户端发布订阅MQTT云代理消息 -> 正文阅读

[系统运维]Python客户端发布订阅MQTT云代理消息

MQTT基础

MQTT 是一种开放且简单的客户端服务器发布/订阅消息传输协议,专为高延迟和低网络带宽环境下不同设备之间的机器对机器通信而设计。

  • 机器对机器通信

    这很容易。一个系统需要与其他系统交换信息。在物联网环境中,设备之间的通信需求急剧增加。

    一切都是互联的——在智能家居中,你的冰箱可以和你的吸尘器对话。您可以使用智能手机打开灯,并通过智能扬声器通过语音订购新的狗粮。

    所有这些通信都需要启用、结构化、可靠和安全。就此而言,通信标准由 HTTP、MQTT 或其他协议定义。

  • 发布/订阅消息传输协议

    MQTT 是一种具有特殊发布/订阅实现的协议。设备之间不直接对话。相反,通信被构建为主题并通过中央服务器(代理)进行处理。

    设备可以将信息发布到一个或多个主题。同时,他们可以订阅一个或多个主题,以接收发布到这些主题的信息。这允许一对多的消息分发和应用程序的解耦。

    → 示例 1:看一下上面的图片。智能手机可以在Position主题上发布其当前位置。感兴趣的设备可以订阅此主题,并在发布新消息时收到通知。

    如果智能手机位置位于您的公寓外,灯泡和加热设备可能会关闭,而安全摄像头和真空吸尘器可能会打开。智能手机不需要单独通知所有设备。它可以简单地将信息发布到中心主题,任何对信息感兴趣的设备都可以订阅它。

    → 示例 2:外部温度传感器可以将外部温度发布到温度主题,您的加热设备可以订阅相同的内容。每当外部温度低于规定值时,加热设备就可以打开。

    同时,智能手机订阅该主题以了解当前的室内和室外温度并通知其人类。智能手机还可以向主题发布温度控制消息,以调节也充当主题订阅者的加热设备。

  • 高延迟和低网络带宽

    MQTT 协议是轻量级、高效的,并且占用空间很小。这使其非常适合经常在不稳定环境中运行并使用 WiFi、蓝牙或卫星等无线连接的物联网设备和场景。

HiveMQ云代理和Python客户端

此示例项目涵盖了与 HiveMQ 云交互的 MQTT 客户端的核心功能。 要安全地将 MQTT 客户端与 HiveMQ Cloud 连接,您需要启用 TLS。 使用您的用户名和密码在 HiveMQ Cloud 上验证您的 MQTT 客户端。 要连接客户端,请使用安全 MQTT 通信的标准端口 8883。

# enable TLS
client.tls_set(tls_version=mqtt.client.ssl.PROTOCOL_TLS)
# set username and password
client.username_pw_set("<your_username>", "<your_password>")
# connect to HiveMQ Cloud on port 8883
client.connect("<your_host>", 8883)

代码首先订阅主题过滤器“encyclopedia/#”。

这意味着 MQTT 客户端接收发布到此主题过滤器的所有消息。 主题过滤器中所谓的通配符(“#”)包括所有以“encyclopedia/”开头的主题。 on_subscribe 回调作为订阅工作的保证。 然后代码发布一条消息,并在收到消息时将其打印到终端。 由于 on_message 回调,它会打印消息,当消息进入时会触发该消息。

# subscribe to all topics of encyclopedia by using the wildcard "#"
client.subscribe("encyclopedia/#", qos=1)

# a single publish, this can also be done in loops, etc.
client.publish("encyclopedia/temperature", payload="hot", qos=1)

Mosquitto云代理和Python客户端

在此示例中,我使用免费的在线 MQTT 代理 Mosquitto,您可以使用 MQTT 客户端轻松连接(发布和/或订阅)。

发布一个主题

我们将使用上图中的示例编写两个 Python 应用程序,将信息发布到温度主题。第一个应用程序将发布有关此主题的内部温度。

如果您在控制台中运行脚本,它将如下所示。

Just published 20.152963374957682 to topic TEMPERATURE 
Just published 20.161864524496735 to topic TEMPERATURE 
Just published 20.832600714734365 to topic TEMPERATURE 
Just published 20.139163091102564 to topic TEMPERATURE 
Just published 20.596117184032405 to topic TEMPERATURE 
Just published 20.050333160761117 to topic TEMPERATURE 
Just published 20.25035838170374 to topic TEMPERATURE 
Just published 20.76368639769279 to topic TEMPERATURE

订阅一个主题

源代码

详情参阅 - 亚图跨际

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 12:01:58  更:2022-05-05 12:02:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:42:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码