SlimMessageBus icon indicating copy to clipboard operation
SlimMessageBus copied to clipboard

MQTT Support

Open zaksnet opened this issue 2 years ago • 3 comments

Hi @zarusz,

SlimMessageBus is a client façade for message brokers for .NET. It comes with implementations for specific brokers (Apache Kafka, Azure EventHub, MQTT/Mosquitto, Redis Pub/Sub) and in-memory message passing (in-process communication). SlimMessageBus additionally provides request-response implementation over message queues.

You mention in the readme that SlimMessageBus supports MQTT but I could not find a Host/documentation for it. Thank you!

zaksnet avatar May 26 '22 10:05 zaksnet

Hi @zaksnet, yes it is mentioned, but nothing had actually been built yet. Sorry for the confusion. I had the plan to built it as some point, but there was always something more needed/urgent.

Do you have a need to use MQTT ? I could look into it in the upcoming weeks, or I could look at accepting a pull request too :)

zarusz avatar May 26 '22 11:05 zarusz

I am currently using MQTTNet in my projects for both the Broker and the Client implementation. I was looking at your project and you have some amazing abstractions that could help prevent reinventing the wheel (RPC for example has always been a pain with MQTT)! I'm either going to transition to Kafka (which makes sense for the project I'm working with) or try to implement an MQTT Host for SlimMessageBus using your conventions.

I'm thinking that it would be more beneficial to just write the MQTT wrapper myself and commit a pull request since I would learn a lot but either way I would appreciate it if you take some time laying down the foundation :)

zaksnet avatar May 26 '22 11:05 zaksnet

Thanks for the context here. MQTTNet looks a mature client that could be used for the SMB transport plugin from the first looks. Sure, my preference if also if you contribute a PR, and I can prepare some groundwork in a feature branch so that you can get a head start and focus on the "meat" to implement the MQTT transport via the mentioned client library.

Does that work? If so, when are you thinking about starting? I need to plan around some of my other open-source activities.

zarusz avatar May 26 '22 20:05 zarusz

Some more samples:

MQTTnet: https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Publish_Samples.cs https://github.com/dotnet/MQTTnet/blob/master/Samples/Client/Client_Subscribe_Samples.cs

Azure IoT Hub: https://github.com/Azure-Samples/iot-hub-mqtt-5-preview-samples-csharp/blob/main/src/Program.cs https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support

zarusz avatar Apr 05 '23 20:04 zarusz