NOTE: This is using the ESP8266_RTOS_SDK v3.1
Basically, the problem laid in the fact that I was open my MQTT bridge with an SSL connection. The example from Espressif works just fine when the connection is NOT an SSL one, but with the SSL, a bunch of bugs starts appearing.
So to make it short, because CONFIG_MQTT_RECV_CYCLE == 0 by default, you start hitting timer expired conditions everywhere when reading with the SSL read function incoming messages (even tho the messages are coming in properly). Then, increasing the CONFIG_MQTT_RECV_CYCLE, other delayed issues start to appear because MQTTRun isn't yielding by default to other tasks...
Anyway, in my case, I decided to use MQTTYield instead of starting the MQTTRun task. It gave me more flexibility on how I wanted to set my MQTT flush of incoming messages an all.
Espressif won't fix this since they are working on a new release that isn't using the MQTT Paho library anymore. But in my case, upgrading the SDK at that point in the release of our product wasn't an option, so I had to deal with what I have been done in the SDK v3.1...
Hope that can help others that might have encountered that type of issue.
CheersStatistics: Posted by Guest — Sat Jul 27, 2019 12:52 am
]]>