eclipse / paho.mqtt.m2mqtt

Eclipse Public License 1.0
512 stars 303 forks source link

Create IMqttClient interface and publish in separate nuget #139

Closed Ellerbach closed 10 months ago

Ellerbach commented 10 months ago

Idea is to have a nanoFramework.M2Mqtt.Core nuget containing a hardaware independant nuget containing an IMqttClient interface. This will allow to adjust the Azure and AWS libs to work also with this interface. Those will be adjusted after and 2 new nugets will be created (1 each). There will be the exact same with exact same way of working as today and an addional one (1 for Azure, 1 for AWS) to use the IMqttClient interface rather than the regular MQTT nuget. So then right after the new AT Modem work can use this MQTT interface and both cloud libs will be able to be used with the exact same code either with the "full" nuget on a device with tradition Ethernet/Wifi or with a device using an AT Modem or its own MQTT implementation.

This PR has no breacking change at all. Everything working will continue to work the exact same way but will require a recompilation (because of the interface).

It will create the existing nuget containing everything needed like in the past. And it creates a new nuget that contains only the interface and the needed elements for MQTT.

Once this PR will be approved, the Azure and AWS libs will be able to be adjusted with the 2 new nugets and the AT Modem work will go as well in PR.