diff --git a/umqtt.robust/umqtt/robust.py b/umqtt.robust/umqtt/robust.py index 7ee40e020..582628c2e 100644 --- a/umqtt.robust/umqtt/robust.py +++ b/umqtt.robust/umqtt/robust.py @@ -26,6 +26,18 @@ def reconnect(self): i += 1 self.delay(i) + def with_retry(self, meth, *args, **kwargs): + while 1: + try: + return meth(*args, **kwargs) + except OSError as e: + print("%r" % e) + time.sleep(0.5) + self.reconnect() + + def publish_(self, *args, **kwargs): + return self.with_retry(super().publish, *args, **kwargs) + def publish(self, topic, msg, retain=False, qos=0): while 1: try: diff --git a/umqtt.simple/example_pub_ssl.py b/umqtt.simple/example_pub_ssl.py new file mode 100644 index 000000000..9d2f62dd9 --- /dev/null +++ b/umqtt.simple/example_pub_ssl.py @@ -0,0 +1,13 @@ +from umqtt.simple import MQTTClient + +# Test reception e.g. with: +# mosquitto_sub -t foo_topic + +def main(server="localhost"): + c = MQTTClient("umqtt_client", server, ssl=True) + c.connect() + c.publish(b"foo_topic", b"hello") + c.disconnect() + +if __name__ == "__main__": + main() diff --git a/umqtt.simple/example_pubsub.py b/umqtt.simple/example_pubsub.py new file mode 100644 index 000000000..1d0f4451f --- /dev/null +++ b/umqtt.simple/example_pubsub.py @@ -0,0 +1,13 @@ +import time +from umqtt.simple import MQTTClient + +def sub_cb(topic, msg): + print((topic, msg)) + +c = MQTTClient("uqmtt_client", "localhost") +c.connect() +c.subscribe(b"foo_topic") +c.publish(b"foo_topic", b"hello") +while 1: + c.wait_msg() +c.disconnect()