如何使用AWS IoT Python SDK发布带Retained Flag的消息?
使用AWS IoT Python SDK发布带Retained Flag的消息
你提到的publish方法其实支持设置保留消息的参数,只是可能没注意到SDK的完整参数定义:
1. 使用AWSIoTPythonSDK(传统设备SDK)
原有的publish方法除了Topic、Payload、QoS三个必填参数外,还有可选的retained参数,显式设置为True即可发布保留消息:
thisAWSIoTMQTTClient.publish("Topic", "Payload", 1, retained=True)
注:这里QoS需要传入整数类型(0/1),而非字符串。
2. 使用Boto3(AWS SDK for Python)
如果使用Boto3的IoT Data Plane客户端,publish方法直接支持retain参数:
import boto3 # 初始化IoT Data客户端 iot_data_client = boto3.client('iot-data') # 发布带保留标志的消息 iot_data_client.publish( topic="your/iot/topic", payload="your message payload", qos=1, retain=True )
保留消息的逻辑和控制台操作一致:设置retain=True后,AWS IoT会存储这条消息,后续订阅该主题的设备会立即收到这条最新的保留消息。
内容的提问来源于stack exchange,提问作者Frankster
相关产品推荐
相关产品推荐

