- Switched default protocol version to 3.1.1
- Added support for Server Name Identification (SNI)
- Fix for unescaping user/password in URI
- Fix for bug in MQTT::Proxy class
- Add the ability to ignore retained packets when subscribed.
- Fix problem of wrong Puback packet ID
- Don't keepalive ping if disconnected
- Immediately close socket after failed Connack
- FakeServer improvements
- Fix for working with mathn library.
- Added puback handling for QoS level 1
- Low-level MQTT-SN packet parsing support
- Allow certs to be set directly instead of just by file
- Allow keyphrase for certs to be passed through
- Put 'disconnect' inside an 'ensure' block
- Fix for error on publish with frozen payload
- Fix for packets always getting id 1
- Improvements to tests
- Added
last_ping_response
to attribute toMQTT::Client
- Added support for MQTT protocol version 3.1.1
- Renamed a number of methods/attributes:
- Renamed
:granted_qos
to:return_codes
- Renamed
:remote_port
to:port
- Renamed
:remote_host
to:host
- Renamed
:message_id
to:id
- Renamed
:protocol_version
to:protocol_level
- Renamed
MQTT_BROKER
environment variable toMQTT_SERVER
- Renamed
- Added more checks to ensure that the 3.1.1 protocol specs are adhered to
- Added a Library Overview section to the README
- Added links to the protocol specification to README
- Improvements to the YARD API documentation
- Don't display payload in inspect if it contains non-visible ASCII characters
- Upgraded to rspec 3
- Various minor bug fixes and corrections
- Added SSL/TLS support
- Added support for passing connection details using a URI
- Added support for using the
MQTT_BROKER
environment variable - Allow passing array of topics to Client#unsubscribe
- Allow more combinations of arguments to be passed to a new Client
- No longer defaults to ‘localhost’ if there is no server configured
- Fixed more 'unused variable' warnings
- Documentation improvements
- Ruby 1.8 fixes
- Ruby 2 fixes
- Changed license to MIT, to simplify licensing concerns
- Improvements for UTF-8 handling under Ruby 1.9
- Added
get_packet
method - Added support for a keep-alive value of 0
- Added a #inspect method to the Packet classes
- Added checks for the protocol name and version
- Added check to ensure that packet body isn't too big
- Added validation of QoS value
- Added example of using authentication
- Fixed 'unused variable' warnings
- Reduced duplicated code in packet parsing
- Improved testing
- Created fake server and integration tests
- Better test coverage
- Added more tests for error states
- Fixes for Ruby 1.9.3 by Mike English
- Fix for
client_id
typo by Anubisss - Added methods to inspect the incoming message queue:
queue_empty?
andqueue_length
- Fixed incorrect implementation of the parsing and serialising of Subscription Acknowledgement packets
- Changed test mocking from Mocha to rspec-mocks
- Implemented Last Will and Testament feature
- Renamed dup attribute to duplicate to avoid method name clash
- Made the random
client_id
generator a public class method
- You can now pass a topic and block to client.get
- Added MQTT::Client.connect class method
- Implemented setting username and password (MQTT 3.1)
- Renamed
clean_start
to ``clean_session``` - Started using autoload to load classes
- Modernised Gem building mechanisms
- Re-factored packet encoding/decoding into one class per packet type
- Added MQTT::Proxy class for implementing an MQTT proxy
- Added checking of Connection Acknowledgement
- Automatic client identifier generation
- Added support for packets longer than 127 bytes
- Initial Release