|
@@ -1,6 +1,8 @@ |
|
|
using System; |
|
|
using System; |
|
|
using System.Collections.Concurrent; |
|
|
using System.Collections.Concurrent; |
|
|
using System.Collections.ObjectModel; |
|
|
using System.Collections.ObjectModel; |
|
|
|
|
|
using System.Net.Security; |
|
|
|
|
|
using System.Security.Cryptography.X509Certificates; |
|
|
using System.Text; |
|
|
using System.Text; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
using Windows.Security.Cryptography.Certificates; |
|
|
using Windows.Security.Cryptography.Certificates; |
|
@@ -595,7 +597,7 @@ namespace MQTTnet.TestApp.UniversalWindows |
|
|
}; |
|
|
}; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------------- |
|
|
// ---------------------------------- |
|
|
{ |
|
|
{ |
|
|
var options = new MqttServerOptions(); |
|
|
var options = new MqttServerOptions(); |
|
@@ -714,6 +716,25 @@ namespace MQTTnet.TestApp.UniversalWindows |
|
|
var mqttServer = new MqttFactory().CreateMqttServer(); |
|
|
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. |
|
|
// Setup and start a managed MQTT client. |
|
|
var options = new ManagedMqttClientOptionsBuilder() |
|
|
var options = new ManagedMqttClientOptionsBuilder() |
|
|