检查阴影文档更新的时间戳是否正确设置,并使用正确的订阅主题收取消息。以下是一个示例代码,该代码可以订阅"my/topic"主题,并从此主题中获取JSON格式的阴影文档。
import json
import time
import AWSIoTPythonSDK.MQTTLib as AWSIoTPyMQTT
#初始化MQTT客户端
myMQTTClient = AWSIoTPyMQTT.AWSIoTMQTTClient("myClientID")
#更新阴影文档的回调函数,用于接收阴影文档更新
def myShadowUpdateCallback(payload, responseStatus, token):
print()
print ('Received message on topic: $aws/things/MyThing/shadow/update/#')
payloadDict = json.loads(payload)
print('Payload: ')
print(json.dumps(payloadDict, indent=4))
#用于订阅主题和接收消息的回调函数
def myCallback(client, userdata, message):
print(message.payload)
#连接到IoT core并订阅主题
myMQTTClient.configureEndpoint("yourEndpoint", 8883)
myMQTTClient.configureCredentials("rootCA.pem", "private.pem.key", "certificate.pem.crt")
myMQTTClient.configureOfflinePublishQueueing(-1)
myMQTTClient.configureDrainingFrequency(2)
myMQTTClient.configureConnectDisconnectTimeout(10)
myMQTTClient.configureMQTTOperationTimeout(5)
myMQTTClient.connect()
myMQTTClient.subscribe("my/topic",1,myCallback)
while True:
myMQTTClient.subscribe("$aws/things/MyThing/shadow/update/accepted", 1, myShadowUpdateCallback)
time.sleep(1)
在上述示例代码中,可以使用myShadowUpdateCallback
函数检查更新时间戳,并从"$aws/things/MyThing/shadow/update/accepted"主题中接收阴影文档更新。使用myCallback
回调函数从"my/topic"主题接收所有消息。如果主题和回调函数未正确设置,就有可能出现问题。
上一篇:AWSIoTCore限流指示