python3异步MQTT库HBMQTT(4) - 通用API

说明

本文内容紧接着前面几篇文章,关于hbmqtt库的客户端和broker的API使用过程中,都涉及到的接口。

API说明

ApplicationMessage消息实例

class hbmqtt.session.ApplicationMessage(packet_id, topic, qos, data, retain)

ApplicationMessage以及其子类用于存储已发布的消息信息流,这些对象根据其创建的方式(发送和接收)包含了不同的信息和QoS服务质量。

方法:build_publish_packet

根据ApplicationMessage的实例属性构建一个 hbmqtt.mqtt.publish.PublishPacket

msg.build_publish_packet(dup=False)

参数:

  • dup:强制导出标识。

返回:

hbmqtt.mqtt.publish.PublishPacket

属性:data

发布消息的载荷。

属性:packet_id

发布消息的包标识符 id

属性:puback_packet

hbmqtt.mqtt.puback.PubackPacket 实例对应的PUBACK 确认包。
如果QoS != 1,或者 PUBCOMP 包还没发送或者没收到 的情况下 为None

属性:pubcomp_packet

hbmqtt.mqtt.puback.PubrelPacket 实例对应的 PUBCOMP
如果 PUBLISH 包还没发送或者没收到的情况下为None

属性:pubrec_packet

hbmqtt.mqtt.puback.PubrecPacket 实例对应的 PUBREC
如果QoS != 2,或者 PUBREC 包还没发送或者没收到的情况下为None

属性:pubrel_packet

hbmqtt.mqtt.puback.PubrelPacket实例对应的 PUBREL
如果 QoS != 2,或者 PUBREL 包还没发送或者还没收到的情况下为 None

属性:qos

消息服务质量

属性:retain

消息的retain值

属性:topic

消息 topic

其他子类

IncomingApplicationMessage

class hbmqtt.session.IncomingApplicationMessage(packet_id, topic, qos, data, retain)

父类:hbmqtt.session.ApplicationMessage

进来的 ApplicationMessage.消息

OutgoingApplicationMessage

class hbmqtt.session.OutgoingApplicationMessage(packet_id, topic, qos, data, retain)

父类:hbmqtt.session.ApplicationMessage

发出的 ApplicationMessage.消息

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python中实现MQTT接入阿里云,需要使用Paho MQTT客户端和阿里云IoT Python SDK。以下是实现的步骤: 1.安装paho-mqtt和aliyun-iot-sdk-core第三方: ``` pip install paho-mqtt aliyun-iot-sdk-core ``` 2.创建一个MQTT客户端并连接到阿里云IoT: ```python import paho.mqtt.client as mqtt from aliyunsdkcore.client import AcsClient from aliyunsdkiot.request.v20170420 import RegisterDeviceRequest from aliyunsdkiot.request.v20170420 import PubRequest client = mqtt.Client(client_id="your_client_id") client.username_pw_set(username="your_product_key&your_device_name", password="your_device_secret") client.connect("your_product_key.iot-as-mqtt.cn-shanghai.aliyuncs.com", port=1883) ``` 3.注册设备并获取设备的Topic: ```python client = AcsClient("your_access_key_id", "your_access_key_secret", "cn-shanghai") request = RegisterDeviceRequest.RegisterDeviceRequest() request.set_ProductKey("your_product_key") request.set_DeviceName("your_device_name") response = client.do_action_with_exception(request) topic = response["Data"]["Device"]["Topic"] ``` 4.发布和订阅消息: ```python def on_message(client, userdata, msg): print(msg.topic + " " + str(msg.payload)) client.subscribe(topic) client.on_message = on_message request = PubRequest.PubRequest() request.set_ProductKey("your_product_key") request.set_TopicFullName(topic) request.set_MessageContent("hello world") client.publish(topic, payload="hello world", qos=0) ``` 以上是Python实现MQTT接入阿里云的简单示例,需要根据自己的实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值