AWSIoTMQTTClient - how can I tell if the client is offline?

0

Hello all,
I am new to aws IoT and AWSIoTPythonSDK :)

I have a python script (which is based on basicPubSub.py) that reads small files from directory and send their content to topic using :
self.myAWSIoTMQTTClient.publish(topic, message_to_send, 1)

I have long disconnection periodד, and i want to stop sending message to the topic while the device is offline (I dont want the messages to be send to the offline queue).
Can I tell the client status using the SDK?

p.s
I thought about copy the logic from MqttCore.publish() method, but it based on:
self._client_status.get_status()
and I dont think I can access this data...

p.s.s
I can NOT use greengrass

Thanks,
Aya

已提问 5 年前332 查看次数
1 回答
0

I found the solution:

    self.myAWSIoTMQTTClient.onOffline = self.myOnOfflineCallback  
    self.myAWSIoTMQTTClient.onOnline = self.myOnOnlineCallback  

def myOnOfflineCallback(self):  
    self.sent_to_topic = False  
    print("OFFLINE")  

def myOnOnlineCallback(self):  
    self.sent_to_topic = True  
    print("ONLINE")  

def publish(self, topic, message_to_send):  
    if self.sent_to_topic:  
        self.myAWSIoTMQTTClient.publish(topic, message_to_send, 1)  
        print(f"Published topic {topic}")
已回答 5 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则