python Mqtt 的安装及使用

Python_MQTT发布/订阅封装 本文介绍了如何使用Python编写一个简单的MQTT发布者和订阅者类来封装MQTT客户端。通过这两个类,我们可以轻松地连接到MQTT服务器并发布/订阅消息到指定主题。封装MQTT客户端可以简化开发过程,使得连接和发布/订阅消息变得更加简单。 阅读详情


简介&安装
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的
,这些特点使它适用范围非常广泛.可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消
息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有
较广泛的应用。

MQTT 提供两个核心功能:

三种级别的消息发布服务质量
基于订阅/发布的消息转发服务。
有三种消息发布服务质量:

"至多一次",消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。这一级别可用于如下情况,
环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。这一种方式主要普通APP的推
送,倘若你的智能设备在消息推送时未联网,推送过去没收到,再次联网也就收不到了。

"至少一次",确保消息到达,但消息重复可能会发生。

"只有一次",确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。在计费系统中
,消息重复或丢失会导致不正确的结果。这种最高质量的消息发布服务还可以用于即时通讯类的APP的推
送,确保用户收到且只会收到一次。

安装方式见官网介绍:http://mosquitto.org/download/
Mac 安装方式非常简单
brew install mosquitto

新梦想技术分享

安装完成,可以见它的配置文件为地址在 /usr/local/etc/mosquitto/mosquitto.conf 下

启动MQTT服务命令为
mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf 即可开启服务
如果提示 mosquitto 命令未找到,就添加一下环境变量

MOSQUITTO_HOME=/usr/local/Cellar/mosquitto/1.6.9/sbin
export MOSQUITTO_HOME
export PATH=$PATH:$MOSQUITTO_HOME 
启动服务 brew services start mosquitto
停止服务 brew services stop mosquitto

发送消息命令
mosquitto_pub -h 127.0.0.1 -p 1883 -t "mytopic" -m "222"
表示向 主题为 mytopic 发送一条 内容为 222的消息

添加订阅主题命令
mosquitto_sub -h 127.0.0.1 -p 1883 -t "mytopic" -v
表示向 mqtt中添加 一个主题为 mytopic 的监听

新梦想技术分享
以上是命令的方式测试及验证相关功能,那么在python中代码如何调用呢

Python 使用MQTT
MqttClient.py

import datetime
import paho.mqtt.client as mqtt
# 服务器地址
strBroker = "localhost"
# 通信端口
port = 1883
# 用户名
username = 'username'
# 密码
password = 'password'
# 订阅主题名
topic = 'topic'

def on_connect(mqttc, obj, rc):
    print("OnConnetc, rc: " + str(rc))

def on_publish(mqttc, obj, mid):
    print("OnPublish, mid: " + str(mid))

def on_subscribe(mqttc, obj, mid, granted_qos):
    print("Subscribed: " + str(mid) + " " + str(granted_qos))

def on_log(mqttc, obj, level, string):
    print("Log:" + string)

def on_message(mqttc, obj, msg):
    curtime = datetime.datetime.now()
    strcurtime = curtime.strftime("%Y-%m-%d %H:%M:%S")
    print(strcurtime + ": " + msg.topic + " " + str(msg.qos) + " " + str(msg.payload))
    on_exec(str(msg.payload))

def on_exec(strcmd):
    print
    "Exec:", strcmd
# =====================================================
if __name__ == '__main__':
    mqttc = mqtt.Client("test")
    mqttc.on_message = on_message
    mqttc.on_connect = on_connect
    mqttc.on_publish = on_publish
    mqttc.on_subscribe = on_subscribe
    mqttc.on_log = on_log

    # 设置账号密码
    # mqttc.username_pw_set(username, password=password)

    mqttc.connect(strBroker, port, 60)
    mqttc.subscribe(topic, 0)
    mqttc.loop_forever()


MqttServer.py

import sys
import datetime
import socket, sys
import paho.mqtt.publish as publish

'''
发送消息
'''
def transmitMQTT(strMsg):
    strMqttBroker = "localhost"
    strMqttTopic = "topic"
    publish.single(strMqttTopic, strMsg, hostname=strMqttBroker)

if __name__ == '__main__':
    msg = "Hello,MQTT 2020!"
    transmitMQTT("msg")
    print("Send msg = [", msg, "] ok.")


ps :如果Homebrew 更新太慢,可以替换Homebrew 源,具体参见这个文章

Python_MQTT发布 订阅封装_python mqtt通讯封装成类 你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!以+V:Vip1104z获取!!!(备注:嵌入式)**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!! 阅读详情

相关推荐

编写MQTT客户端程序——python

文章目录一、关于MQTT协议的介绍二、MQTT 发布订阅模式三、使用 MQTT 报文实现发布订阅四、使用Python进行客户端编写五、与其他协议进行对比五、小结六、参考资料 一、关于MQTT协议的介绍 MQTT协议是基于发布/订阅模式的物联网通信协议,具有简单易实现、支持 QoS、报文小等特点,在物联网上应用极其广泛。 广泛应用于IOT的原因 ①轻量可靠 MQTT 报文紧凑,可在严重受限的硬件设备和低带宽、高延迟的网络上实现稳定传输。 ②ecology 生态更完善 覆盖全语言平台的客户端和 SDK, AWS

Harriet的博客 6311

物联网通信协议-MQTT及使用python实现

MQTT协议广泛用于物联网设备的消息传输,关于MQTT和MQTT的使用,MQTT的服务软件Mosquitto的搭建和使用,MQTT的python开发软件包paho-mqtt的使用,以及我们的物联网平台如何集成MQTT消息服务及其代码开发。我们在上次课讲到的iotplus使,用MQTT的三个场景还是非常复杂的,在正式开发MQTT的功能之前,我们需要掌握MQTT的python软件库的使用。主流的MQTT是基于TCP连接进行数据推送的,但是同样有基于UDP的版本,叫做MQTT-SN。命令行MQTT客户端。

留下虚度光阴的一些证据。 7711

MQTT(二)在windows64位上安装Python环境、pip、paho-mqtt

目录 MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载) MQTT(二)在windows64位上安装Python环境 MQTT(三)Python客户端+net客户端+net服务端 简单通信 MQTT(四)树莓派开机自动运行Python客户端 MQTT(五)EMQ开源MQTT消息服务器 1、下载安装包 下载地址:https://www.pytho...

pw的博客 1万+

MQTT在Python中的使用mqtt-paho(简单实例, 回调函数,回调参数,qos安全等级)详解及回调函数的正确用法

目录 一. mqtt概念 二. mqtt的实现 mqtt简单应用(实例) 三. mqtt回调函数 连接回调 on_connect 订阅回调 on_subscribe 消息回调 on_message 消息发布回调 on_publish 取消订阅 on_unsubscribe 断开连接回调 ondisconnect 套接子打开回调 on_scoket_open 套接子关闭回调 on_socket_close 套接子写入回调 on_socket_register 套接子注销写入..

XC_SunnyBoy的博客 3万+

『MQTT』 EMQX-5.3.0服务Windows上的安装与Python测试调用

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!发现你走远了@mzh原创作品,转载必须标注原文链接欢迎关注『MQTT』 专栏,持续更新中欢迎关注『MQTT』 专栏,持续更新中『未完待续』

MZH 618

2021年软件测试面试题大全

简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(主要参与人员:开发、测试、产品、测试leader)。 6、开发提交代码至SVN或者GIT ,配管搭建测试环境。 7、执行测试用例,记录发现的问题。 8、验证bug与回归测试。 9、编写测试报告。 10、产品上线。 补充测试用例设计过程: 根据需求得出测试需求 设计测试方

hard_days的博客 20万+

python mqtt broker_python Mqtt 的安装及使用

简介&安装MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛.可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT 提供两个核心功能:三种级别的消息发布服务质量基于订阅/发布的消息转发服务。有...

weixin_39715834的博客 788

Quartus II 13.1 出现 ‘‘can‘t find design entity <Filename>‘‘ 问题的解决方法

Quartus II 13.1 出现 ''can't find design entity '' 问题的解决方法

qq_62076686的博客 1万+

安装部署mqtt,使用python实现mqtt的发布和订阅

MQTT简介 MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。该协议的特点有: 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。 对负载内容屏蔽的消息传输。 使用 TCP/IP 提供网络连接。 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。 ...

阿啄debugIT 4282

STM32--LoRa通信模块

模块根据MD0的配置与AUX引脚的状态会进入不同的功能其中在通信功能下,包含4种工作模式。

qq_47258284的博客 1万+

Java8动态生成SFunction:基于字段名的Lambda表达式实践

本文深入探讨了在Java8中如何基于字段名动态生成SFunction,以解决MyBatis Plus的LambdaQueryWrapper在动态查询场景下的局限性。通过核心原理LambdaMetafactory的解析和手把手的代码实现,展示了如何将字符串字段名转换为类型安全的Lambda表达式,从而实现真正动态、类型安全的查询条件构建与通用数据处理,显著提升代码的灵活性与安全性。

sss66的博客 952

python locust mqtt_python Mqtt 的安装及使用

简介&安装MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛.可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT 提供两个核心功能:三种级别的消息发布服务质量基于订阅/发布的消息转发服务。有...

weixin_29740913的博客 231

IPMI的SOL (Serial Over LAN) 和 UART

UART全名是Universal Asynchronous Receiver/Transmitter(通用異步接收/发送器),它是一个常用的異步串行传输协议。透过UART传输前,接收方须要先知道传输方的鲍率(Baud rate):单位时间内,讯号状态变化的次数。例如 115200 bps,表示每秒会传送115200个bits--> 因此读取率就是 1/115200=8.6微秒读取一次讯号。封包内的资料长度:通常是 8bits。

yeiris的博客 1万+

MQTT Python客户端库安装与配置指南

Eclipse Paho MQTT Python客户端库是一个实现了MQTT协议的开源项目,它支持MQTT协议的5.0、3.1.1和3.1版本。这个库提供了一个客户端类,使得应用程序能够连接到MQTT代理,发布消息以及订阅主题接收消息。该项目主要由Python编程语言编写。 ## 2. 项目使用的关键技术和框架 - **MQTT协议**:一种轻量级的发布/订阅消息传输协议,适用于机器对机器(M...

gitblog_01061的博客 501

TESSY创建单元测试或集成测试工程

我们以tessy5.1为例,给大家展示单元测试和集成测试工程的创建过程。

空气中的告白专栏 1682

梯度提升决策树GBDT原理与代码实例讲解

梯度提升决策树GBDT原理与代码实例讲解 1.背景介绍 1.1 机器学习发展历程 机器学习是人工智能领域的一个重要分支,旨在使计算机具备学习和改进自身性能的能力。随着大数据时代的到来,海量的数据为机器学习算法提供了广阔的应用空间。在

AI天才研究院 1081

树莓派安装mqtt broker并使用python从外部访问

树莓派安装mqtt broker并使用python从外部访问说明环境配置1.PC安装`paho-mqtt`Python脚本`mqtt.py`2.树莓派linuxpython 3.7.3mosquitto-2.0.9下载、编译修改配置内部测试外部测试 说明 记录一下树莓派linux的学习。 树莓派通过eth0有线连接到光猫LAN口,用超级用户访问光猫后台把树莓派设为DMZ主机,理论上可以实现公网访问,但是移动宽带貌似是大型局域网,甚至同一省级移动4G都不能访问,有点小伤心。 由于树莓派直连光猫LAN口,其他设

u012198579的博客 4551

基于 STM32 的全自动洗车监控系统设计与实现

本文提出一种基于 STM32F103RCT6 芯片的全自动洗车监控系统方案,通过多传感器融合与智能控制算法,实现车辆检测、洗车流程自动化及状态远程监控。系统集成硬件选型、电路设计、软件流程及通信功能,可广泛应用于智能洗车场景。

weixin_42300449的博客 964

ubuntu安装mqtt,python发布订阅

1、安装MQTT #要安装最新版本的MQTT服务器,需配置 Mosquitto 源 apt-add-repository ppa:mosquitto-dev/mosquitto-ppa apt-get update #安装 apt install mosquitto #安装 mosquitto-clients 才会有 mosquitto_sub 和 mosquitto_pub 命令 apt install mosquitto mosquitto-clients #安装 MQTT 开发库 apt inst

大伟的博客 839

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

mqtt安装使用教程。(基于rabbitmq插件,docker部署,k8s部署,python教程)

Docker安装RabbitMQ配置MQTT 使用RabbitMQ作为MQTT服务端,Eclipse Paho作为客户端。宿主机系统为ubuntu16.04 Docker下载镜像 docker pull daocloud.io/library/rabbitmq:3.7.4 启动RabbitMQ docker run -d --hostname my-rabbit --name some-...

4950

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

linux服务器(宝塔)给python3安装json和paho.mqtt模块

在终端输入以下命令 python3 -m pip install paho-mqtt python3 -m pip install simplejson 查看有没有安装到python3 python3 //进入python3 >>>import json >>>import paho.mqtt.client as mqtt 如果没有报错就是安装成功了 退出python3我自己尝试摸索出来的是Ctrl+Z. ...

weixin_51082062的博客 1202

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

树莓派上用python的pip方式安装MQTT实现通信

在终端输入以下命令确认pip是否已经安装: pip -V 输入以下命令安装mqtt包: sudo pip install paho-mqtt 我们编写一段python代码确认一下是否安装成功: #!/usr/bin/python import paho.mqtt.client as mqtt host = '127.0.0.1' port = 1883 keepalive = 60 topi...

Cloud_1234_5678的博客 2975

MQTT消息框架paho-mqtt与emqx安装部署与启动,python

(3)在mqtt的架构中,需要部署一个消息的中继broker,这里选择EMQX。打开后,需要输入用户名和秘密,初始的用户名是 admin,密码 public。MQTT消息框架paho-mqtt与emqx安装部署与启动,python。这里主要配置两个:tcp和绑定的端口,本例是9999。(1)安装MQTT消息框架paho-mqtt。进去后是这样的web端页面。(5)开始发布/订阅消息。

Zhang Phil 2855

Paho MQTT Python客户端常用API、安装与使用

安装Paho Paho 是Eclipse的开源 MQTT 客户端项目,提供多种语言的 MQTT 客户端实现,包括 C、C++、C#、Java、Python、JavaScript 等。 在Python环境下,Paho由paho-mqtt模块支撑。用pip安装如下: pip install paho-mqtt ...

Forskamse's Blog 1万+

Python3 MQTT客户端简单应用

【代码】Python3 MQTT客户端简单应用。

传播知识,分享快乐! 553
上一篇: git使用系列01-->版本控制介绍
下一篇: 基于HTML5的移动Web应用——Geolocation地理定位
Meryoufdd
博客等级 码龄5年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值