Hi,
We use TLS encryption with MQTT towards Amazons MQTT-service.
What we have been able to do, is send 1 packet (2KB max size, due to modem buffer limit set by Nordic), then wait for PUBACK, before we can send another one.
If we try to send 2 packets, and wait for pubacks, they usually fail, or doesn't arrive, or one is missing, or the modem stops working. We tried even 3 packets or more, and ignoring the pubacks, but the modem just stops working then.
Is this by design, that we have to send 1 packet, and receive a response in MQTT PUB_ACK before we are allowed to send another packet, avoiding the send packet funktion to fail or hang?
It would be more effective if we could send all 10 packets of 2KB in a row, and then listen for PUB-ACK for each packet, incoming.. perhaps with a few ms apart.
Now it looks like…
1) send first 2KB packet
2) wait for puback.
3) send second 2KB-packet
4) wait for puback ….etc.
Wastes time, about 400ms between send and received puback.
I would prefer to send packet…1…2…3…4..5…6..7..8, wait for puback… 1..2…3…4..5…6..7..8. (or what order they arrive) and just verify each packet sent was acknowledged.
What do you recommend, and what is limited and why? By design? Will you make improvements soon to your software? If yes, when, if not, why not? Technical limitations?
Cheers,
Johan