Please advise if the following sequence is correct-
bunch of wiced_aws_subscribe()
bunch of wiced_aws_publish()
After X minutes goto 1
Is it possible to shorten reconnection time described above by calling wiced_aws_init()/wiced_aws_create_endpoint() once upon the first connection, or does it have to be called on every (re)connection
There seem to be a memory leak when calling wiced_aws_disconnect().
At the end of the function there's a call to "free(aws)".
However the parameter aws that was dynamically allocated in wiced_aws_create_endpoint(), has an internal dynamic allocation (aws->mqtt.base) taking place in aws_internal_mqtt_init() that is not freed when its parent object (aws) is being freed !
You can use the solution suggested in the mentioned thread. After that thread, there hasn't been a wiced release; so, you would need to fix it in your local setup for now.
If you are putting the device to sleep by suspending network activity, then you have to follow the sequence quoted above
wiced applications are a means to get you started; like the default publisher in 43xxx_Wi-Fi/apps/demo/aws/iot/pub_sub/publisher/publisher.c doesn't handle the disconnection events at all. They are by no means perfect and hence, I would recommend you to check the memory leak in case of your connection teardown and free the base object correctly.
Thanks for the beautiful explanation . What I meant earlier is that since in the default snippet, we are not handling the disconnection at all; it might have gone completely unnoticed from our side. Fair warning: there might be other memory leaks as well. I will request you to do a mallinfo in your application for finding out other such bugs.
Meanwhile, you can add line #398 in 43xxx_Wi-Fi/libraries/protocols/AWS/wiced_aws.c free(aws->mqtt.base).
Additionally, in line #290 in 43xxx_Wi-Fi/libraries/protocols/AWS/aws_mqtt.c, you can add the following three lines from wiced_mqtt_deinit
I will update the thread as and when I find any other issue.