BrighterCommand / BrighterCommand/Brighter
[Fix] Rewrite the MQTT Client to use the LowLevelClient
- Dominant language
- C#
- Stars
- 2.5k
- Forks
- 296
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
**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.
Contributor guide
Assessment
This issue has not been assessed yet.