Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc. http://www.blynk.cc/

Dependents:   Blynk_RBL_BLE_Nano Blynk_MicroBit Blynk_Serial Blynk_RBL_BLE_Nano

Revision:
21:fd9a3d7ddadb
Parent:
19:bae78e167b11
--- a/Blynk/BlynkProtocol.h	Fri Dec 15 00:17:56 2017 +0200
+++ b/Blynk/BlynkProtocol.h	Thu Dec 21 14:34:46 2017 +0200
@@ -153,9 +153,7 @@
       return true;
     }
 
-    const bool tconn = conn.connected();
-
-    if (tconn) {
+    if (conn.connected()) {
         while (avail || conn.available() > 0) {
             //BLYNK_LOG2(BLYNK_F("Available: "), conn.available());
             //const unsigned long t = micros();
@@ -175,6 +173,9 @@
 
     const millis_time_t t = BlynkMillis();
 
+    // Update connection status after running commands
+    const bool tconn = conn.connected();
+
     if (state == CONNECTED) {
         if (!tconn) {
             lastHeartbeat = t;
@@ -343,8 +344,8 @@
         BLYNK_LOG4(BLYNK_F("Redirecting to "), redir_serv, ':', redir_port);
         conn.disconnect();
         conn.begin(redir_serv, redir_port);
-        lastLogin = lastActivityIn - 5000L;  // Reconnect immediately
         state = CONNECTING;
+        lastHeartbeat = lastActivityIn = lastActivityOut = (BlynkMillis() - 5000UL);
     } break;
     case BLYNK_CMD_HARDWARE:
     case BLYNK_CMD_BRIDGE: {