收到消息后如何发布到 AWS MQTT

时间:2021-07-28 02:27:16

标签: python amazon-web-services mqtt

导入 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?

0 个答案:

没有答案
相关问题