Commit Graph

7 Commits

Author SHA1 Message Date
Johan Ström 2d958750b5 Handle large/chunked/fragmented MQTT messages properly (#2571)
* MQTT: handle large/chunked/fragmented messages properly

If a message spans multiple TCP packets it must be buffered before
delivered to LUA. Prior code did not do this at all, so this "patch"
really adds proper handling of fragmented MQTT packets.
This could also occur if multiple small messages was sent in a
single TCP packet, and the last message did not completely fit in that
packet.

Introduces a new option to the mqtt.Client constructor:
max_publish_length which defaults to 1024

Introduces a new 'overflow' callback.

Fixes issue #2308 and proper fix for PR #2544.

* mqtt.md: clarified heap allocation

* mqtt: ensure ack is sent for overflowed publish

If QoS is used we should still acknowledge that we received it, or server might retransmit it later.
2018-11-30 22:12:46 +01:00
Nathaniel Wesley Filardo 332bcb39a3 mqtt: fix several buffer length checks (#1906)
Partially addresses nodemcu/nodemcu-firmware#1773.
2017-04-19 20:16:44 +02:00
philip 426e805c43 Initial version of unsubscribe 2016-03-20 18:44:06 -04:00
philip 8f355d5d5f Fix problem with subscribing to multiple topics 2016-03-09 22:45:20 -05:00
funshine 09750b5653 add queue to mqtt module 2015-03-30 00:24:09 +08:00
Tuan PM fb0938db2e fixes nodemcu/nodemcu-firmware#155 lwt qos, retain, change header support MQTT 3.1.1 2015-01-31 11:49:24 +07:00
funshine f676825872 merge mqtt branch to master and build pre_build bin 2015-01-23 11:48:05 +08:00