I think there is a bug on mqtt clinet keep alive timer.
m = mqtt.Client("ESP"..node.chipid(), 120, "user", "password")
m:lwt(PUB_TOPIC, "offline", 0, 0)
m:on("connect", function(conn) print("mqtt_connected") end)
m:on("offline", function(conn) print("offline") end)
m:on("message", function(conn, topic, data) receive_data(data, topic) end)
As you can see on the first line I am creating a client with keep alive time 120 secs, so if the client lost internet connection for more than 120 seconds it should fire up m:on("offline"... event. It seems that it needs more time (about 14-15 minutes to fire up the offline event).
Is this a bug? Or is something wrong on my code? I tried to change 120 seconds to 0,1, 10, 60 seconds but always the response is the same, the offline event raised at 13-16 minutes.
Below you can see build information:
NodeMCU custom build by frightanic.com
build built on: 2015-12-19 06:31
powered by Lua 5.1.4 on SDK 1.4.0