[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [paho-dev] When to send publish acknowledgements
|
Hi Al,
if I understand you correctly, this is what I do in the C
client. I send the PUBACK or PUBCOMP (old style QoS 2) after the
message handler callback has been invoked, and has returned a good
result.
I read that spec statement as referring to the receive maximum
limit, making it clear that it applies to PUBLISH packets only,
not PUBACKs, PUBRECs, PUBRELs or PUBCOMPs. I do think however
there is a question of ordering, that the ack for a message
shouldn't be delayed so long that the ack for a subsequently
received PUBLISH is sent first, at least not routinely.
(An additional note: I have a request to have two callbacks for
the receipt of QoS 2 messages, one for the PUBLISH and one for the
PUBREL, to allow a 2-phase commit interaction with, for instance,
a database. I haven't implemented it yet, but I intend to.)
On 30/03/2021 16:55, Allan
Stockdill-Mander wrote:
Hi All,
I've had a PR for the v5 golang client
https://github.com/eclipse/paho.golang/pull/52
that changes the behaviour so that Publish messages are only
acknowledged (the puback or pubrec sent) after the associated
message handlers have been invoked and returned. I can see a
benefit to doing this for the application as you effectively
don't need to have incoming message persistence, until you
have processed the message if the client dies and reconnects
the server should resend any unacked messages. However the
spec says in 3.3.4
> The Client
MUST NOT delay the sending of any packets other than PUBLISH
packets due to having sent Receive Maximum PUBLISH packets
without receiving acknowledgements for them [MQTT-3.3.4-8]. The value of
Receive Maximum applies only to the current Network
Connection.
On the one hand I think this method counts as a
delay, on the other I can see the benefit and how can a server
determine this behaviour and what impact does it have? If
you're on a constrained device with no persistence this is how
it would look anyway. Thoughts?
Al Stockdill-Mander
Squad Lead - Network Intelligence - Alchemy
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with
number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire
PO6 3AU
_______________________________________________
paho-dev mailing list
paho-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/paho-dev