njh / ruby-mqtt

Pure Ruby gem that implements the MQTT protocol, a lightweight protocol for publish/subscribe messaging.
http://www.rubydoc.info/gems/mqtt
MIT License
541 stars 135 forks source link

@last_ping_request and @last_ping_response #107

Open crawler opened 6 years ago

crawler commented 6 years ago

Hi, Found this issue when i was writing code that recovers broken MQTT connection. Think that both @last_ping_request and @last_ping_response variables should be reset in #connect method, just before starting @read_thread

Here the code to reproduce it:

mqtt = MQTT::Client.new('mqtt://test.mosquitto.org')
sleep 24
mqtt.connect
mqtt.subscribe('#')

mqtt.get do |topic, payload| 
  puts topic, payload
end # => No Ping Response received for 23 seconds (MQTT::ProtocolException)
# In first keep_alive!