BrighterCommand / BrighterCommand/Brighter

[Fix] Rewrite the MQTT Client to use the LowLevelClient

Open
#3,519 1 comment 0 reactions 1 assignee Assigned to @SteveBush View on GitHub
.NET 0 - Backlog feature request V10.X
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.