mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-17 01:33:03 +08:00
63 lines
2.2 KiB
C#
63 lines
2.2 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using MQTTnet.Core;
|
|
using MQTTnet.Core.Client;
|
|
using MQTTnet.Core.Diagnostics;
|
|
using MQTTnet.Core.ManagedClient;
|
|
using MQTTnet.Core.Packets;
|
|
using MQTTnet.Core.Protocol;
|
|
|
|
namespace MQTTnet.TestApp.NetCore
|
|
{
|
|
public static class ManagedClientTest
|
|
{
|
|
public static async Task RunAsync()
|
|
{
|
|
MqttNetTrace.TraceMessagePublished += (s, e) =>
|
|
{
|
|
Console.WriteLine($">> [{e.TraceMessage.Timestamp:O}] [{e.TraceMessage.ThreadId}] [{e.TraceMessage.Source}] [{e.TraceMessage.Level}]: {e.TraceMessage.Message}");
|
|
if (e.TraceMessage.Exception != null)
|
|
{
|
|
Console.WriteLine(e.TraceMessage.Exception);
|
|
}
|
|
};
|
|
|
|
var options = new ManagedMqttClientOptions
|
|
{
|
|
ClientOptions = new MqttClientTcpOptions
|
|
{
|
|
Server = "broker.hivemq.com",
|
|
ClientId = "MQTTnetManagedClientTest"
|
|
},
|
|
|
|
AutoReconnectDelay = TimeSpan.FromSeconds(1)
|
|
};
|
|
|
|
try
|
|
{
|
|
var managedClient = new MqttClientFactory().CreateManagedMqttClient();
|
|
managedClient.ApplicationMessageReceived += (s, e) =>
|
|
{
|
|
Console.WriteLine(">> RECEIVED: " + e.ApplicationMessage.Topic);
|
|
};
|
|
|
|
await managedClient.EnqueueAsync(new MqttApplicationMessageBuilder().WithTopic("Step").WithPayload("1").Build());
|
|
await managedClient.EnqueueAsync(new MqttApplicationMessageBuilder().WithTopic("Step").WithPayload("2").WithAtLeastOnceQoS().Build());
|
|
|
|
await managedClient.StartAsync(options);
|
|
|
|
await managedClient.SubscribeAsync(new TopicFilter("xyz", MqttQualityOfServiceLevel.AtMostOnce));
|
|
|
|
await managedClient.EnqueueAsync(new MqttApplicationMessageBuilder().WithTopic("Step").WithPayload("3").Build());
|
|
|
|
Console.WriteLine("Managed client started.");
|
|
Console.ReadLine();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e);
|
|
}
|
|
}
|
|
}
|
|
}
|