Skip to content

Releases: bertmelis/espMqttClient

Bugfix - empty payload parsing

03 Oct 14:47
Compare
Choose a tag to compare

Fixed: when a PUBLISH packet with an empty payload was received, the client would wait for a next packet to arrive before "releasing" the PUBLISH packet to the user. It now does it immediately.

Other improvements:

  • lowered default stack size to 5000 words instead of 10000. This will give you some more heap space.
  • Nagle is effectively disabled on the secure client. This might speed up the transmission when sporadically sending data.
  • moved the docs to a subfolder instead of a separate branch to keep everything in sync more easily.
  • more testing!

Bugfix: recover after disconnect during big payload parsing

18 Sep 09:42
Compare
Choose a tag to compare

espMqttClient would not recover when during receipt of a large message it got disconnected. The parser would be stuck in parsing the payload instead of trying to parse CONNACK, which is the very first message from the broker when connecting. Hence, the client would disconnect rightfully.

This release fixes this issue.

It also "synchronizes" the code with the docs. According to the docs, the client by default connects with cleansession to true but was actually false. By default, the client now connects with cleansession set to true.

Many thanks to @serfreeman1337

Linux compatibility

17 Sep 09:41
Compare
Choose a tag to compare

espMqttClient now:

  • runs on Linux*
  • has void mqttClient.disconnected() in the API
  • has separate options for rx and tx buffer size

Linux compatibility is mainly for automatic testing. It relies on a quick and dirty Arduino-style Client class with a POSIX TCP client underneath and Arduino-style IPAddress class. These classes are lacking many features needed for proper Linux support.

Bugfix release: fix ping mechanism

13 Sep 19:57
Compare
Choose a tag to compare

After a client initiated disconnect because of ping timeout, the ping mechanism stopped working.

  • the stack usage debug statement on esp32 is more readable now.

Bugfix: Secure client not connecting

12 Sep 11:07
Compare
Choose a tag to compare

Secure client was not able to connect. This release fixes this issue.

Bugfix: multiple pings

06 Sep 14:25
Compare
Choose a tag to compare

This bugfix release fixes the issue where PINGs were continuously being sent until the broker responds.

Async Mqtt Clients

03 Sep 19:11
Compare
Choose a tag to compare

This version includes async clients using ESPAsyncTCP or AsyncTCP. For the most part, both non-blocking and async APIs are the same. Differences are the constructor the lack of a client.loop() method for the async client. See the examples for async versions.

Reminder: TLS is not supported for async out-of-the-box as the TCP libraries themselves do not support it.

Bugfix - keepalive for client and server activity

08 Aug 17:40
Compare
Choose a tag to compare

This release fixes a bug where the client would disconnect after the server is inactive during the keepalive period while being expected to be inactive. This happens when sending only QoS0 packets during the keepalive period.

Also, the timing requirement to send PING packets is relaxed and calculation simplified.

Bugfix - Align clientID with MQTT specification requirements

22 Jul 09:33
Compare
Choose a tag to compare

Client IDs with alphanumerical characters and a length between 1 and 23 characters must be allowed by a broker. This bugfix aligns this library with that requirement.

Also fixes the missing definition of getclientId().

v1.1.0 Extra config options

20 Jul 16:43
Compare
Choose a tag to compare

It is now possible via a compile-time parameter to

  • publish without being connected
  • enable the watchdog for the MQTT client

Furthermore, you can now force disconnect when you already tried to disconnect graciously.

extra:

  • various small code and testing improvements
  • first preparation made to implement underlying async tcp