首页 > 编程语言 >python3 使用paho-mqtt

python3 使用paho-mqtt

时间:2022-08-21 17:25:48浏览次数:66  
标签:__ print mqtt client connect msg paho python3

python版本:python3.8

mqtt库:paho-mqtt 1.6.1

 

一,消息发布

创建pub.py,写入以下代码

import time
from paho.mqtt import client as mqtt_client


# broker服务器
broker = 'localhost'
# 端口
port = 1883
# 主题(要和订阅端保持一致)
topic = 'topic1'
# 客户端id(随机字符串)
client_id = '001'

def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("Connected to MQTT Broker!")
    else:
        print(f"Failed to connect, return code {rc}")

def conn_mqtt():
    client = mqtt_client.Client(client_id)
    client.on_connect = on_connect
    client.connect(broker, port)
    return client

def publish(client):
    msg_count = 0
    while True:
        time.sleep(1)
        msg = f"msg of {msg_count}!"
        res = client.publish(topic, msg)
        if res[0] == 0:
            print(f"send {msg} successful!")
        else:
            print("Fail to send msg!")
        msg_count += 1

if __name__ == "__main__":
    client = conn_mqtt()
    publish(client)

 

二,消息接收(消息订阅)

创建文件sub.py,写入以下代码

from paho.mqtt import client as mqtt_client


broker = 'localhost'
port = 1883
topic = 'topic1'
client_id = '002'


def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("Connected to MQTT Broker!")
    else:
        print(f"Failed to connect, return code {rc}")

def conn_mqtt():
    client = mqtt_client.Client(client_id)
    client.on_connect = on_connect
    client.connect(broker, port)
    return client

def on_message(client, userdata, msg):
    print(f"Received {msg.payload.decode()}!")

def subscribe(client):
    client.subscribe(topic)
    client.on_message = on_message
    client.loop_forever()

if __name__ == "__main__":
    client = conn_mqtt()
    subscribe(client)

 

 

三,启动

 

标签:__,print,mqtt,client,connect,msg,paho,python3
From: https://www.cnblogs.com/xianqingsong/p/16610342.html

相关文章

  • 牛客网笔试输入输出处理方法总结(基于Python3.5)
    牛客网判题系统输入处理牛客网上的输入输出借鉴ACM模式给出,对于习惯了leetcode函数定义形式解题的小伙伴们来说确实比较生疏。为了避免在之后的笔试中再次吃亏,在这里对牛......
  • mqtt协议
    一简述MQTT(消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上。MQTT最大优点在于,可以以极少的代码和有......
  • Python3项目初始化7--ORM及其项目修改
    22、DjangoORM介绍配置数据库引擎,setting操作。##CREATEDATABASEcmdb_userDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;DATABASES={'default':......
  • ESP8266 安信可固件 MQTT AT指令
    9.1AT+MQTTUSERCFG-SetMQTTUserConfigSetCommand:AT+MQTTUSERCFG=<LinkID>,<scheme>,<"client_id">,<"username">,<"password">,<cert_key_ID>,<CA_ID>,<"path">A......
  • Python3项目初始化5-->面向对象
    18、面向对象--类和实例属性创建一个类classPerSon(object):  def__init__(self,name,age):    self.name=name    self.age=age  def......
  • Python3_2022
    1、Python中__init__的通俗解释是什么?  2、Python数据结构之序列(Sequence)、集合(Set)、映射(Mapping)不可变序列(ImmutableSequence):字符串(class str)、元组(cl......
  • python3:面向对象之成员变量(成员变量赋值为元组、字典)
    python3:面向对象之成员变量(成员变量赋值为元组、字典)    一、python3源码  1#!/usr/bin/python323classdata:45#python是“弱类型......
  • Python3 virtual environment 在 vscode 的实践
    1、虚拟环境实际上就是将python解释器+项目中可能用的的modules,统一放在虚拟环境对应的目录2、activate虚拟环境,只是保证相关module下载到对应文件夹中,而不是说pyth......
  • python3读csv文件,出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in
    使用csv.reader(file)读csv文件时,出现如下错误:UnicodeDecodeError:‘utf-8’codeccan’tdecodebyte0xd0inposition0:invalidcontinuationbyte出现原因:文件不是......
  • python3 运维脚本(使用psutil模块)(转)
    使用python编写一个监控脚本,放在Linux系统运行。监控的要求如下:1.显示当前时间2.脚本运行之后监控10s,每隔一秒钟输出一次信息3.显示当前系统CPU的逻辑核数、平均使用率4.显......