From 587622af81c6e03e5972d9bf194405c9100e8943 Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Thu, 9 Nov 2017 08:23:40 +0100 Subject: [PATCH] Refactoring --- Frameworks/MQTTnet.NetStandard/MqttFactory.cs | 28 +++++++++---------- .../MainPage.xaml.cs | 16 +++++++++++ 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/Frameworks/MQTTnet.NetStandard/MqttFactory.cs b/Frameworks/MQTTnet.NetStandard/MqttFactory.cs index 394374de..1729350c 100644 --- a/Frameworks/MQTTnet.NetStandard/MqttFactory.cs +++ b/Frameworks/MQTTnet.NetStandard/MqttFactory.cs @@ -16,20 +16,6 @@ namespace MQTTnet { private readonly IServiceProvider _serviceProvider; - private static IServiceProvider BuildServiceProvider() - { - var serviceProvider = new ServiceCollection() - .AddMqttClient() - .AddMqttServer() - .AddLogging() - .BuildServiceProvider(); - - serviceProvider.GetRequiredService() - .AddMqttTrace(); - - return serviceProvider; - } - public MqttFactory() : this(BuildServiceProvider()) { @@ -128,5 +114,19 @@ namespace MQTTnet return _serviceProvider.GetRequiredService(); } + + private static IServiceProvider BuildServiceProvider() + { + var serviceProvider = new ServiceCollection() + .AddMqttClient() + .AddMqttServer() + .AddLogging() + .BuildServiceProvider(); + + serviceProvider.GetRequiredService() + .AddMqttTrace(); + + return serviceProvider; + } } } \ No newline at end of file diff --git a/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs b/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs index 1a12f950..6ae711be 100644 --- a/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs +++ b/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Logging; using MQTTnet.Core; using MQTTnet.Core.Client; using MQTTnet.Core.Diagnostics; +using MQTTnet.Core.ManagedClient; using MQTTnet.Core.Protocol; using MQTTnet.Core.Server; using MQTTnet.Implementations; @@ -454,6 +455,21 @@ namespace MQTTnet.TestApp.UniversalWindows var mqttServer = new MqttFactory().CreateMqttServer(); } + { + // Setup and start a managed MQTT client. + var options = new ManagedMqttClientOptionsBuilder() + .WithAutoReconnectDelay(TimeSpan.FromSeconds(5)) + .WithClientOptions(new MqttClientOptionsBuilder() + .WithClientId("Client1") + .WithTcpServer("broker.hivemq.com") + .WithTls().Build()) + .Build(); + + var mqttClient = new MqttFactory().CreateManagedMqttClient(); + await mqttClient.SubscribeAsync(new TopicFilterBuilder().WithTopic("my/topic").Build()); + await mqttClient.StartAsync(options); + } + } private async void StartServer(object sender, RoutedEventArgs e)