Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broker compatibility: add option for brokers not 100% mqtt compliant #177

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

GwendalRaoul
Copy link
Contributor

Some brokers (like AWS iot core) do not support qos=2 or retain
messages.
Add option to transport to specify the max qos value to use and also
if the retain flag is supported by broker.

In case of retain flag, behavior of transport is a bit different.

@GwendalRaoul GwendalRaoul added the interface/transport Issues related to the gateway transport interface label Apr 3, 2020
@GwendalRaoul GwendalRaoul added this to the 1.4.0 milestone Apr 3, 2020
@GwendalRaoul GwendalRaoul self-assigned this Apr 3, 2020
@GwendalRaoul GwendalRaoul force-pushed the broker_compatibility branch from 8e2cff4 to 7bfa959 Compare April 3, 2020 08:37
@teemupiiroinenwirepas
Copy link

Does the code already check the message ids everywhere so e.g. remote api / OTAP commands are not sent twice to the network / node if sent with MQTT QoS1?

@GwendalRaoul
Copy link
Contributor Author

Does the code already check the message ids everywhere so e.g. remote api / OTAP commands are not sent twice to the network / node if sent with MQTT QoS1?

No it doesn't. We could keep a table of cmd ids received. But I don't know what should be the time window to keep them. In case of Qos1, how long can be the delay between 2 duplicates?

@teemupiiroinenwirepas
Copy link

Does the code already check the message ids everywhere so e.g. remote api / OTAP commands are not sent twice to the network / node if sent with MQTT QoS1?

No it doesn't. We could keep a table of cmd ids received. But I don't know what should be the time window to keep them. In case of Qos1, how long can be the delay between 2 duplicates?

It is usually several minutes, as it happens only when there is high load. One easy solution would be just to keep the last id in the memory per message type and do the checking with it.

@GwendalRaoul GwendalRaoul force-pushed the broker_compatibility branch from 7bfa959 to 6efb530 Compare April 16, 2020 15:32
@hound hound bot deleted a comment from florean-wirepas Apr 16, 2020
@hound hound bot deleted a comment from florean-wirepas Apr 16, 2020
@GwendalRaoul GwendalRaoul force-pushed the broker_compatibility branch from 6efb530 to 3301b48 Compare April 16, 2020 15:35
Some brokers (like AWS iot core) do not support qos=2 or retain
messages.
Add option to transport to specify the max qos value to use and also
if the retain flag is supported by broker.

In case of retain flag, behavior of transport is a bit different.
@GwendalRaoul GwendalRaoul force-pushed the broker_compatibility branch from 3301b48 to 7e5021b Compare April 22, 2020 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
interface/transport Issues related to the gateway transport interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants