Hi Frank,
Thanks for your “immediate” response!
Sorry, I was too unspecific in my
question.
If I understood it correctly, a
keep-alive value of zero, would switch off the
broker-sided test for receiving PINGREQ packets to
decide, if a connection is alive or should be
closed.
To switch of the PINGREQ test for
connection closure at the broker, the client needs
to specify the keep-alive interval to be zero.
But the Mosquitto API allows only a
keep-alive interval of five or more seconds.
I’m with you and I don’t think, that it
mostly makes no sense to specify values lower then
five, but zero is valid and as a semantic!
That’s why I’m asking.
Best regards
Martin
Keep in
mind that the value of zero for Keep Alive is a
special indicator to turn it off (i.e. don't use Keep
Alive).
So don't think of the specs as saying you can "go down
to zero". Technically, I guess, a 1-sec Keep Alive
should be supported, but practically, this would
induce a huge overhead on the broker. If you had ten
thousand clients pinging at that rate, it would be
hitting the broker with 10k msgs/sec just to maintain
otherwise quiet connections.
So you will find that many clients won't let you set a
Keep Alive of less than 5 or 10, and default to
something like 30, 45, or 60.
Whether a _client_ is required to support all values
1-65535 is debatable. Technically, a _broker_ probably
should, to be 100% compliant, but allowing really low
values would let some clients put a large burden on
the broker.
Frank
On 9/25/23 09:06, Lemburg, Martin
via mosquitto-dev wrote:
Hello,
May be a naive question, but why I
can only connect with Mosquitto to a broker with a
keep-alive greater or equal to 5, while the
protocols allow a zero keep-alive?
That’s all for the beginning.
Best regards
Martin
_______________________________________________
mosquitto-dev mailing list
mosquitto-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/mosquitto-dev