- 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_responseto attribute toMQTT::Client
- Added support for MQTT protocol version 3.1.1
- Renamed a number of methods/attributes:
- Renamed
:granted_qosto:return_codes - Renamed
:remote_portto:port - Renamed
:remote_hostto:host - Renamed
:message_idto:id - Renamed
:protocol_versionto:protocol_level - Renamed
MQTT_BROKERenvironment 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_BROKERenvironment 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_packetmethod - 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_idtypo 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_idgenerator 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_startto ``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