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

Rewrite the MQTT Client to use the LowLevelClient #3519

Open
iancooper opened this issue Feb 18, 2025 · 0 comments
Open

Rewrite the MQTT Client to use the LowLevelClient #3519

iancooper opened this issue Feb 18, 2025 · 0 comments
Assignees
Labels
0 - Backlog feature request .NET Pull requests that update .net code

Comments

@iancooper
Copy link
Member

Is your feature request related to a problem? Please describe.
The MQTTClient from MQTTNet is well-supported and mature but does not give us access to the event loop. Instead, it offers a callback. The problem here is that this does not play well with our model. Simply, their loop and our loop mirror each other, but through their client, our interface, Receive, Acknowledge, etc., cannot drive the client.

The existing solution is to fill a local queue, which we empty via the receive loop.

Describe the solution you'd like

To work around this, we need to build our client based on their LowLevelClient (or even a fork of their MQTTCllent), which gives us back control of the message pump.

Describe alternatives you've considered
We could switch to another MQTT library. Apart from PetaBridge, most seem unmaintained. Petabridge works the same way, creating the same problem for us.

@iancooper iancooper added .NET Pull requests that update .net code 0 - Backlog feature request labels Feb 18, 2025
@iancooper iancooper self-assigned this Feb 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0 - Backlog feature request .NET Pull requests that update .net code
Projects
None yet
Development

No branches or pull requests

1 participant