From 4dc1f1c264714edac5889877647345c7e9b966af Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky <pfalcon@users.sourceforge.net> Date: Mon, 9 May 2016 13:55:41 +0300 Subject: [PATCH 1/3] umqtt.simple: Add pubsub example. --- umqtt.simple/example_pubsub.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 umqtt.simple/example_pubsub.py 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() From d3d0b4f0b59eff77415da0822ae7eb18e38ba26f Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky <pfalcon@users.sourceforge.net> Date: Sun, 5 Jun 2016 14:35:33 +0300 Subject: [PATCH 2/3] umqtt.robust: Add universal with_retry method, and publish_() using it. This method uses more memory though. --- umqtt.robust/umqtt/robust.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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: From 6f9131e59a4c27691b378cd027151f8d0352d976 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky <pfalcon@users.sourceforge.net> Date: Sun, 3 Jul 2016 13:56:16 +0300 Subject: [PATCH 3/3] umqtt.simple: Add example for publishing over SSL. --- umqtt.simple/example_pub_ssl.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 umqtt.simple/example_pub_ssl.py 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()