<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=MQTT%3A_Arduino_Reconnect_non-blocking</id>
	<title>MQTT: Arduino Reconnect non-blocking - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=MQTT%3A_Arduino_Reconnect_non-blocking"/>
	<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=MQTT:_Arduino_Reconnect_non-blocking&amp;action=history"/>
	<updated>2026-04-19T20:46:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://onnocenter.or.id/wiki/index.php?title=MQTT:_Arduino_Reconnect_non-blocking&amp;diff=47843&amp;oldid=prev</id>
		<title>Onnowpurbo: Created page with &quot; /*   Reconnecting MQTT example - non-blocking     This sketch demonstrates how to keep the client connected   using a non-blocking reconnect function. If the client loses   i...&quot;</title>
		<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=MQTT:_Arduino_Reconnect_non-blocking&amp;diff=47843&amp;oldid=prev"/>
		<updated>2017-05-10T22:03:40Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; /*   Reconnecting MQTT example - non-blocking     This sketch demonstrates how to keep the client connected   using a non-blocking reconnect function. If the client loses   i...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; /*&lt;br /&gt;
  Reconnecting MQTT example - non-blocking&lt;br /&gt;
 &lt;br /&gt;
  This sketch demonstrates how to keep the client connected&lt;br /&gt;
  using a non-blocking reconnect function. If the client loses&lt;br /&gt;
  its connection, it attempts to reconnect every 5 seconds&lt;br /&gt;
  without blocking the main loop.&lt;br /&gt;
 &lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;Ethernet.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;PubSubClient.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // Update these with values suitable for your hardware/network.&lt;br /&gt;
 byte mac[]    = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };&lt;br /&gt;
 IPAddress ip(192, 168, 0, 4);&lt;br /&gt;
 IPAddress server(192, 168, 0, 100);&lt;br /&gt;
 &lt;br /&gt;
 void callback(char* topic, byte* payload, unsigned int length) {&lt;br /&gt;
   // handle message arrived&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 EthernetClient ethClient;&lt;br /&gt;
 PubSubClient client(ethClient);&lt;br /&gt;
 &lt;br /&gt;
 long lastReconnectAttempt = 0;&lt;br /&gt;
 &lt;br /&gt;
 boolean reconnect() {&lt;br /&gt;
   if (client.connect(&amp;quot;arduinoClient&amp;quot;)) {&lt;br /&gt;
     // Once connected, publish an announcement...&lt;br /&gt;
     client.publish(&amp;quot;outTopic&amp;quot;,&amp;quot;hello world&amp;quot;);&lt;br /&gt;
     // ... and resubscribe&lt;br /&gt;
     client.subscribe(&amp;quot;inTopic&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
   return client.connected();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void setup()&lt;br /&gt;
 {&lt;br /&gt;
   client.setServer(server, 1883);&lt;br /&gt;
   client.setCallback(callback); &lt;br /&gt;
 &lt;br /&gt;
   Ethernet.begin(mac, ip);&lt;br /&gt;
   delay(1500);&lt;br /&gt;
   lastReconnectAttempt = 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void loop()&lt;br /&gt;
 {&lt;br /&gt;
   if (!client.connected()) {&lt;br /&gt;
     long now = millis();&lt;br /&gt;
     if (now - lastReconnectAttempt &amp;gt; 5000) {&lt;br /&gt;
       lastReconnectAttempt = now;&lt;br /&gt;
       // Attempt to reconnect&lt;br /&gt;
       if (reconnect()) {&lt;br /&gt;
         lastReconnectAttempt = 0;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   } else {&lt;br /&gt;
     // Client connected&lt;br /&gt;
 &lt;br /&gt;
     client.loop();&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
</feed>