using MQTTnet.Extensions.ManagedClient;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using System.Data.SqlClient;
using System.Collections.Generic;
static void Main(string[] args)
var mqttClient = new MqttFactory().CreateManagedMqttClient();
var options = new MqttClientOptionsBuilder()
.WithClientId("MQTTSubscriber")
.WithTcpServer("5fa017d6dda9448dbb473a3d76ea9ddd.s1.eu.hivemq.cloud", 8883)
.WithCredentials("Aledc", "Ghisa2024")
mqttClient.ApplicationMessageReceivedAsync += async e =>
Console.WriteLine("Message received");
var payload = Encoding.UTF8.GetString(e.ApplicationMessage.PayloadSegment);
JObject dati = JObject.Parse(payload);
Console.WriteLine(payload);
await Task.CompletedTask;
new ManagedMqttClientOptionsBuilder()
.WithAutoReconnectDelay(TimeSpan.FromSeconds(5))
.WithClientOptions(options)
Console.WriteLine("Connected");
string topic = "Macchinari";
var topicFilter = new MqttTopicFilterBuilder().WithTopic(topic).Build();
mqttClient.SubscribeAsync(new List<MQTTnet.Packets.MqttTopicFilter> { topicFilter }).Wait();
Console.WriteLine($"Subscribed to '{topic}' (Press any key for exit).");
mqttClient.StopAsync().Wait();
Console.WriteLine("Disconnected");
Console.WriteLine($"Error: {ex.Message}");