Releases: php-mqtt/client
v1.3.0
✔️ This release does not contain any backwards incompatible changes.
Added
- Support for automatic reconnects by @Namoshek in #106
- Add test case which publishes/subscribes 2mb message by @Namoshek in #108
- Add .github/release.yml for auto-changelog by @Namoshek in #110
- Run CI tests against Mosquitto 2.0 by @Namoshek in #111
Full Changelog: v1.2.0...v1.3.0
Add support for MQTT 3.1.1
In #90, support for MQTT 3.1.1 has been added a few months ago. Since the implementation has not received any negative feedback, it seems to work as expected and is hereby released.
There MQTT 3.1.1 protocol can be used by passing 3.1.1
as fourth parameter to the constructor, e.g. using the provided constant:
$mqtt = new \PhpMqtt\Client\MqttClient($server, $port, $clientId, \PhpMqtt\Client\MqttClient::MQTT_3_1_1);
Add support for v3 of psr/log
Add support for v2 of psr/log
Fix: Abort connection handshake when connection timeout is reached
This release provides a fix for hanging connection attempts after successfully opening a socket connection (#84). This may happen when connecting to brokers running in a container, where the application has not bound the forwarded socket yet. The connection handshake is now aborted after the configured connection timeout.
Support for Shared Subscriptions
As part of #75, support for shared subscriptions has been added. Even though this is an MQTT 5 feature, all common brokers seem to support it for MQTT 3.1 connections as well. This means that connecting with multiple clients using a topic of the form $share/<group>/<topic>
will have the broker distribute messages to all of those clients where the group name is the same. More details about shared subscriptions can be found on the HiveMQ blog.
Major design overhaul, more TLS options, quality improvements and extensive examples
With this release, long awaited features are finally here. Not only is there now full support for all TLS options offered and supported by PHP SSL contexts. Also, a lot of work has been put into refactoring and testing of existing code. A few APIs have been moved and renamed, and there is now also an extensive collection of examples available in the php-mqtt/client-examples
repository.
A full list of changes can be found in the changelog. It should give a good idea how to upgrade as well. Upgrading is recommended.
Special thanks go to @thg2k for contributing to this version in various ways!
Release Candidate: major design overhaul, more TLS options, quality improvements and extensive examples
With this release, long awaited features are finally here. Not only is there now full support for all TLS options offered and supported by PHP SSL contexts. Also, a lot of work has been put into refactoring and testing of existing code. A few APIs have been moved and renamed, and there is now also an extensive collection of examples available in the php-mqtt/client-examples
repository.
A (preliminary) full list of changes can be found in the CHANGELOG.md.
If you have the time, please upgrade your application to this version and give feedback how it works for you. In about a week, a final version v1.0.0
will be published if everything goes by plan.
Support for client certificates
With this release, support for client certificates has been added. It is now possible to use a client certificate with an encrypted or unencrypted key by providing the full path to the certificate and key files. The new settings are available through optional arguments of the ConnectionSettings
. The addition is fully backwards compatible and updates should work without issues. Details about this change can be found in #41.
Fix: send PUBREL in response to PUBREC
When the MQTT client was used to subscribe to topics using QoS 2, it would not be able to receive messages with QoS 2 but only messages with lower QoS. This is because no PUBREL
message was sent in response to received PUBREC
messages, producing some sort of dead lock in the client-server communication. Details can be found in #37.