-
Notifications
You must be signed in to change notification settings - Fork 137
Description
With the current implementation, the client blocks when sending a qos 1 packet, waiting for the response.
This is fine for most applications, however for one of my projects it would be beneficial to be able to send out larger "batches" of qos 1 messages, communicating with various separate electronics.
If each single publish blocks and waits for a server response, this can pile up to a fairly large amount of wait time.
It would be nice to have the option of offloading this puback wait to a separate thread, which would run in the background and would handle the puback processing (presumably by polling).
This thread could also re-send packets if they time out, instead of throwing a Timeout::Error if no puback is received in time.
(Note: Maybe the puback packet processing could be done directly in the handle_packet function, while a separate thread could poll and detect puback packet timeouts)
That way, a lot of qos > 0 messages could be sent at once, none of which would block the main thread.