Commit Graph
38 Commits
Author SHA1 Message Date
David Cermak e2de0f3e3e Publish: Allow for qos=0 messages to be stored using esp_mqtt_client_enqueue()
The API presents a boolean parameter to control storing the qos=0
messages into the internal outbox
2020-12-15 19:43:33 +01:00
David Cermak 2e35d4d4d5 Events: Add new event to report deleted messages from outbox 2020-12-09 10:14:54 +01:00
David Cermak f44dcb1c26 Config: Add a new option to disable publishing when disconnected
Related https://github.com/espressif/esp-mqtt/pull/177
2020-12-09 10:14:54 +01:00
David Cermak 8bb4a26f46 Config: Add a new option to use incremental message id
This option is off by default, so the client still uses
random message id unless CONFIG_MQTT_MSG_ID_INCREMENTAL is set

Closes https://github.com/espressif/esp-mqtt/issues/176
2020-12-09 10:12:57 +01:00
David Cermak f65d5d05db Cleanup public include dirs 2020-12-06 11:26:03 +01:00
David Cermak 8562437c8a mqtt_config: Add config value to disable keepalive mechanism
Added a separate config value to allow disable the keepalive mechanism (and keep the existing API the same)
Internally though, the keepalive value (in connect_info) is in line with 3.1.2.10 Keep Alive from mqtt spec:
* keepalive=0: Keep alive mechanism disabled (server not to disconnect the client on its inactivity)
* period in seconds to send a Control packet if inactive

Closes https://github.com/espressif/esp-mqtt/issues/179
2020-11-18 14:41:44 +01:00
Angus Gratton b9db8d9020 Use size_t for all lengths
Previously, uint32_t and size_t were used interchangeably. These types are
interchangeable on Xtensa gcc (uint32_t == size_t == unsigned int), but not on most
other 32-bit gcc architectures (where uint32_t == unsigned long, size_t ==
unsigned int).
2020-10-09 16:33:12 +11:00
David Cermak 420441b677 set separate ssl connection properties before transport connect 2020-01-30 08:31:59 +01:00
David Cermak 7087193093 mqtt_msg: address const correctness 2020-01-25 21:57:02 +01:00
David Cermak 6e08f6a04f mqtt_outbox: fix to store timestamps in long-long format
closes https://github.com/espressif/esp-mqtt/issues/144
closes IDFGH-2491
2020-01-25 21:57:02 +01:00
David Čermák 8ab095b5bb Merge branch 'feature/protocol_ver_rt_cfg' into 'master'
MQTT: Add runtime selection of mqtt protocol version

See merge request espressif/esp-mqtt!54
2020-01-20 16:41:55 +08:00
Marius Vikhammer 7ac0a42831 MQTT: Add runtime selection of mqtt protocol version
Add config option for selecting protocol version at runtime.

This also fixed MQTT protocol version 3.1 which wasnt working with the original implementation

Closes https://github.com/espressif/esp-idf/issues/4448
Closes IDFGH-2311
Closes IDF-1320
2020-01-09 14:49:33 +08:00
Rohan Singh ab1e8d7969 Support larger buffers and messages
Use `uint32_t` instead of `uint16_t` for message and buffer lengths.
This is necessary for receiving messages that are larger than 65K.
2020-01-08 15:00:10 -05:00
João Cabral 67042a1315 ADD: Get the response code from a failing connection.
This commit adds an event information "connect_return_code" that is written
when the client state is MQTT_STATE_INIT, and the connection fails.

This event info can then be written by the user app to find out the reason
of the fail connection.

Merges https://github.com/espressif/esp-mqtt/pull/100
2019-10-09 09:23:53 +02:00
Marius Vikhammer 52cdfa9087 Fix early retransmit
The time for retransmitting a message was set before transfer was done. This ment that if the transfer speed is slow or the message is big then it would be possible to trigger a retransmit too early.

Closes https://github.com/espressif/esp-mqtt/issues/131
2019-10-03 14:03:32 +02:00
Marius Vikhammer 3e35fc8323 MQTT: fix MQTT_PUBLISHED_EVENT not always being posted
- Some PUBLISHED events would not be posted due to outbox messages being deleted before receiving PUBCOMP.
 - Current pending_message is no longer used to check for acknowledgements, as it doesn't work with multiple or out of order messages.

Closes https://github.com/espressif/esp-mqtt/issues/132
2019-10-03 13:28:51 +02:00
Ivan Grokhotkov 2ef78857e9 fix -Wstrict-prototypes issues 2019-05-17 14:36:44 +02:00
David Cermak 18b6f2c582 Fixed formatting for all files to comply with idf style formats 2019-05-15 13:40:14 +02:00
David Cermak 60cdb79a67 mqtt_msg: avoid uncasting const to mqtt topic and data pointers 2019-05-15 13:40:14 +02:00
David Cermak 7d22ab5fe6 pending_msg_count update on delete expired from outbox
Closes #111
2019-05-06 11:23:35 +02:00
David Cermak fd564b1f17 client receive: refactor receive to read only one message to fragment only payload for longer messages
Closes #113
2019-05-06 11:23:28 +02:00
Gregory Eslinger 0450bd0093 MQTT Client: Added support for receiving empty payload 2019-04-26 17:07:04 +02:00
suda-morris ca373e22cb change rom/queue.h to sys/queue.h 2019-03-14 20:26:28 +08:00
David Cermak 51089629f7 corrected outbox for oversized messge and qos1, added errno to error messages 2019-02-13 15:21:32 +01:00
David Cermak 6a0d1e7bff support for qos1 and qos2 message retrasmission on reconnect 2019-02-13 15:21:32 +01:00
David Cermak e0bbbebc08 mqtt support for sending fragmented messages and full mqtt message length support 2019-01-03 09:14:34 +01:00
Riccardo Binetti 8bd8583216 Add mqtt_get_connect_session_present 2018-10-15 11:29:47 +02:00
David Cermak d344f928ca transport: renamed transport headers to avoid compilation collisions 2018-10-02 14:17:54 +02:00
David Cermak 3bbdebcca9 bugfix for longer data on ws transport 2018-08-21 11:55:36 +02:00
David Cermak 0c25441fdd support for custom implementation of msg outbox 2018-08-21 11:55:36 +02:00
Tuan PM 75d3c65cb6 Add error handling for mqtt, fixed some issues 2018-05-03 21:50:24 +07:00
Christian Gawron 4bc37bb8db fix handling of large messages (#40) 2018-05-03 20:46:06 +07:00
JasonJiaJie 8c34c8df68 Keppalive issue
There is no keepalive packget if current time is very large. Caused by integer overflow.
2018-02-26 16:06:42 +08:00
Tuan PM 4fd75c1b4b Add header license 2018-02-17 11:42:41 +07:00
Tuan PM 782e1f8042 Add support ws and wss 2018-02-17 01:03:35 +07:00
Tuan PM 33e2324098 Finishing mqtt client 2018-02-16 22:48:22 +07:00
Tuan PM 503c540eee remove license header and add doc 2018-02-16 18:46:13 +07:00
Tuan PM 083f8789ac Add support outbox, changed API 2018-02-16 02:40:16 +07:00