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()