From 53ab2ac140343a167717a5d36eee12bcf2156cde Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Mon, 6 May 2019 20:22:41 +0200 Subject: [PATCH] Add Wiki Code. --- Tests/MQTTnet.TestApp.NetCore/Program.cs | 22 +++++++++++++++++- .../MainPage.xaml.cs | 23 ++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/Tests/MQTTnet.TestApp.NetCore/Program.cs b/Tests/MQTTnet.TestApp.NetCore/Program.cs index 2d090209..777c6c07 100644 --- a/Tests/MQTTnet.TestApp.NetCore/Program.cs +++ b/Tests/MQTTnet.TestApp.NetCore/Program.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.IO; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; using System.Threading; using System.Threading.Tasks; using MQTTnet.Client; @@ -81,7 +83,7 @@ namespace MQTTnet.TestApp.NetCore { Task.Run(PerformanceTest.RunQoS0Test); } - + Thread.Sleep(Timeout.Infinite); } } @@ -118,4 +120,22 @@ namespace MQTTnet.TestApp.NetCore return Task.FromResult(retainedMessages); } } + + public class WikiCode + { + public void Code() + { + //Validate certificate. + var options = new MqttClientOptionsBuilder() + .WithTls(new MqttClientOptionsBuilderTlsParameters + { + CertificateValidationCallback = (X509Certificate x, X509Chain y, SslPolicyErrors z, IMqttClientOptions o) => + { + // TODO: Check conditions of certificate by using above parameters. + return true; + } + }) + .Build(); + } + } } \ 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 b2494c4d..226fcf23 100644 --- a/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs +++ b/Tests/MQTTnet.TestApp.UniversalWindows/MainPage.xaml.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Concurrent; using System.Collections.ObjectModel; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; using Windows.Security.Cryptography.Certificates; @@ -595,7 +597,7 @@ namespace MQTTnet.TestApp.UniversalWindows }; } } - + // ---------------------------------- { var options = new MqttServerOptions(); @@ -714,6 +716,25 @@ namespace MQTTnet.TestApp.UniversalWindows var mqttServer = new MqttFactory().CreateMqttServer(); } + { + // Setup subscription interceptor. + var options = new MqttServerOptionsBuilder() + .WithSubscriptionInterceptor(context => + { + if (context.TopicFilter.Topic.StartsWith("admin/foo/bar") && context.ClientId != "theAdmin") + { + context.AcceptSubscription = false; + } + + if (context.TopicFilter.Topic.StartsWith("the/secret/stuff") && context.ClientId != "Imperator") + { + context.AcceptSubscription = false; + context.CloseConnection = true; + } + }) + .Build(); + } + { // Setup and start a managed MQTT client. var options = new ManagedMqttClientOptionsBuilder()