专栏首页python3python3对emqtt的简单操作

python3对emqtt的简单操作

需要先下载外部包

pip install paho-mqtt

发布者

import paho.mqtt.client as mqtt

HOST = "192.168.44.31"
PORT = 1883

def Publish_Message():
    client = mqtt.Client()
    client.username_pw_set(username='admin', password='public')  # 用于添加了插件认证方式后
    client.connect(HOST, PORT, 60)
    for x in range(10):
        Message = "hello" + str(x)
        client.publish("services", Message, 0)  # 发布一个主题为'services',内容为‘hello x’的信息
    # time.sleep(10)
    client.loop_forever()  # 保持连接状态

if __name__ == '__main__':
    Publish_Message()

发布者,主要内容:publish("topic_name","utf8_message",Qos)

  • Qos:0 --> 发送者只发送一次消息,不进行重试,Broker不会返回确认消息。Broker可能没有接收到消息。(默认)
  • Qos:1 --> 发送者最少发送一次消息,确保消息达到Broker,Broker需要返回确认消息PUBACK。Broker可能接收到重复消息。
  • Qos:2 --> 使用两阶段确认来保证消息的不丢失和不重复。Broker肯定会接收到消息,且只收到一次。

订阅者

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))  # rc表示返回来的状态值
    client.subscribe("services")

def on_message(client, userdata, msg):
    print(msg.topic+" " + ":" + str(msg.payload))

if __name__ == "__main__":
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    client.username_pw_set(username='admin', password='public')  # 用于添加了插件认证方式后
    client.connect("192.168.44.31", 1883, 60)
    client.loop_forever()

订阅者,信息的产出在msg.payload rc值代表的含义: 0: Connection successful 1: Connection refused - incorrect protocol version 2: Connection refused - invalid client identifier 3: Connection refused - server unavailable 4: Connection refused - bad username or password 5: Connection refused - not authorised 6-255: Currently unused.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python32 Socket Serv

    TCPServer继承了BaseServer UnixStreamServer继承了TCPServer

    py3study
  • python——paho-mqtt使用

    http://blog.csdn.net/yannanxiu/article/details/52716997

    py3study
  • socketserver实现并发

    TCP协议的socket一次只能和一个客户端通信, 而socketsever可以时间和多个客户端通信.

    py3study
  • tls1.2 rfc5246

    注:本文省略了部分开发协议才涉及到的内容,如字段类型的定义以及字段长度的运算,主要聚焦理解tls协议的运作方式,用于问题定位

    charlieroro
  • 从零开始的Spring Security Oauth2(一)

    前言 今天来聊聊一个接口对接的场景,A厂家有一套HTTP接口需要提供给B厂家使用,由于是外网环境,所以需要有一套安全机制保障,这个时候oauth2就可以作为一个...

    程序猿DD
  • BurpSuite 通过Jython(java-python)安装 IP伪造插件-fakeIP

    下载地址:https://github.com/TheKingOfDuck/burpFakeIP

    MyJie
  • 15-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(网页版MQTT,做自己的MQTT调试助手)

    https://www.cnblogs.com/yangfengwu/p/11198572.html

    杨奉武
  • VB.NET 在Visual Studio 2017 和 Visual Studio 2019如何添加报表控件?

    报表就是用表格、图表等格式来动态显示数据,可以用公式表示为:“报表 = 多样的格式 + 动态的数据”。在以往的Visual Studio 版本中都是自带报表控件...

    巴西_prince
  • 数据分析:火锅实体店开店选址和经验建议分析

    A火锅店是一家24小时火锅店,在郑州拥有一家线下实体店铺,业务线包括线上外卖平台+线下实体堂食,并且经过一年的发展经营,该店成为郑州月均销量第一名,目前想进军石...

    沉默的白面书生
  • 研发:基于Jira的Dashboard bug统计

    jira 自带大量bug统计分析功能。如果使用jira pie chart 构建图表时,应该是系统没有按照中文库,参考https://aliang.org/Li...

    heidsoft

扫码关注云+社区

领取腾讯云代金券