导入 AWSIoTMQTTClient 模块后
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
我继续配置了 MQTT 客户端连接
myMQTTClient = AWSIoTMQTTClient("my-clientid")
myMQTTClient.configureEndpoint("123abc-ats.iot.us-east-1.amazonaws.com", 8883)
myMQTTClient.configureCredentials(ROOT_KEY, PRIVATE_KEY, CERT)
myMQTTClient.connect()
我定义了 helloworld
函数,我想将其用作回调来捕获来自主题的消息:
def helloworld(client, params, packet):
print('...topic:', packet.topic)
print('...payload:', packet.payload)
myMQTTClient.publish(topic="home/fromserver", QoS=1, payload="{'message':'hello from server'}" )
请注意,helloworld
函数的最后一行我将消息发布回 MQTT 到“home/from-server”主题。
我在脚本中又添加了两行并运行它
myMQTTClient.subscribe("home/to-server", 1, helloworld)
while True:
time.sleep(1)
我可以从 to-server
主题获取消息。但是将消息发布到 from-server
主题会因 AWSIoTExceptions.publishTimeoutException
如何在不引发 publishTimeoutException
的情况下将消息发布回 MQTT?