Working on a Project where we are using a broker eclipse mosquitto 1.4.14 that supports MQTT 3.1.1 protocol only, Does Cedalo currently provide support for the eclipse mosquitto brokers using MQTT 3.1.1 protocol?
What kind of support are you looking for? We do offer Mosquitto OS Support.
Visit https://cedalo.com/open-source-mosquitto-support/ for more information.
You can also contact us directly via email@example.com
I need to check if Cedalo is currently giving us the provision of using eclipse-mosquitto 1.4.14 broker with High Availability plugin. The reason for using older version of eclipse-mosquitto is because we need retry_interval functionality in mosquitto.conf.
An image with the oldest version of mosquitto I found on the registry.cedalo.com is mosquitto:2.0 which I believe it supports MQTT 5, but I am looking for a version of mosquitto that does not support MQTT 5 although has High availability plugin.
Can you write us at firstname.lastname@example.org, so we can sort that out? I will involve our Devs to see what we can do to help you.
Can you also please explain why you are in need of that interval so we can see if there is maybe already an existing way of setting it up differently.
Our requirement is simple i.e., we want to confirm if cedalo provides a mosquitto broker which only supports MQTT3.1.1 but not MQTT5. However, High Availability feature is available in that.
This can be set in the mosquitto configuration file:
Allow all, the default:
Allow only v3.1, v3.1.1:
Allow only v5.0:
Allow only v3.1.1:
You can choose what type of mqtt version is allowed by setting the configuration as described.
What is the oldest version of Cedalo Mosquitto Pro? Is it mosquitto 2.0?
The oldest version of Mosquitto Pro is already on 2.6.
Does it mean that we can get image of Cedalo with MQTT 3.1.1 broker only? If so, can you share the details?
No, all Mosquitto Brokers have the option to set the allowed protocol versions in the Mosquitto configuration file. You don´t need a special version of Mosquitto to set this up.
As soon as you make sure that you have set the
accept_protocol_versions in the configuration file only clients with the allowed protocol are allowed to connect.
Ok, let me make it bit more clear. Brokers with MQTT 3.1.1 exhibit packet retransmission in case of loss of puback messages which is not supported in MQTT5. Please refer to the case below for more information:
So, if we set the configuration of the broker as 3.1.1, does the broker re-transmits the packet when it doesn’t receive puback from subscriber (check the above case for for more information)?
We want only the features of MQTT3.1.1. at broker end and not MQTT5 features. Hope it is clear now.
Mosquitto has not supported message retrying during a connection since version 1.5, released in 2018, and this applies to all versions of the protocol. This is for the reasons I outlined in the post you refer to. In brief though, the only time when you should need message retrying is if something on your network has a broken implementation of TCP, or if your MQTT client does not save its outgoing messages when it is disconnected. If you have a correct implementation of TCP and your client does save its outgoing messages when it is unexpectedly disconnected, there is no need to retry sending messages during a connection.
If you have an unreliable connection, such as a cellular connection with low signal, then the explanation remains true. You may experience periods of time where messages do not arrive as soon as you would expect them to, because of poor conditions, and hence give the appearance of being lost, but if your TCP implementation is correct they will make it to the destination intact, or the connection will need to be restarted. Attempting to send new instances of the messages will not help when your signal quality is low.
If you disagree with what I have written, please explain and hopefully we can come to some common understanding.
Thanks Roger, so Cedalo mosquitto doesn’t have an image with support only with MQTT 3.1.1 version. Please confirm on this.
If you set
accept_protocol_version 4 in your config, only connections using MQTT v3.1.1 will be accepted.