mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-18 18:43:10 +08:00
Refactor subscribe and unsubscribe to support MQTTv5.
This commit is contained in:
@@ -5,6 +5,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MQTTnet.Adapter;
|
||||
using MQTTnet.Client.Publishing;
|
||||
using MQTTnet.Client.Receiving;
|
||||
using MQTTnet.Diagnostics;
|
||||
|
||||
namespace MQTTnet.Server
|
||||
@@ -31,7 +32,18 @@ namespace MQTTnet.Server
|
||||
_eventDispatcher.ClientDisconnected += (s, e) => ClientDisconnected?.Invoke(s, e);
|
||||
_eventDispatcher.ClientSubscribedTopic += (s, e) => ClientSubscribedTopic?.Invoke(s, e);
|
||||
_eventDispatcher.ClientUnsubscribedTopic += (s, e) => ClientUnsubscribedTopic?.Invoke(s, e);
|
||||
_eventDispatcher.ApplicationMessageReceived += (s, e) => ApplicationMessageReceived?.Invoke(s, e);
|
||||
_eventDispatcher.ApplicationMessageReceived += async (s, e) =>
|
||||
{
|
||||
// TODO: Migrate EventDispatcher to proper handlers and no events anymore.
|
||||
ApplicationMessageReceived?.Invoke(s, e);
|
||||
|
||||
var handler = ReceivedApplicationMessageHandler;
|
||||
if (handler != null)
|
||||
{
|
||||
await handler.HandleApplicationMessageAsync(
|
||||
new MqttApplicationMessageHandlerContext(e.ClientId, e.ApplicationMessage)).ConfigureAwait(false);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public event EventHandler Started;
|
||||
@@ -42,6 +54,7 @@ namespace MQTTnet.Server
|
||||
public event EventHandler<MqttClientSubscribedTopicEventArgs> ClientSubscribedTopic;
|
||||
public event EventHandler<MqttClientUnsubscribedTopicEventArgs> ClientUnsubscribedTopic;
|
||||
|
||||
public IMqttApplicationMessageHandler ReceivedApplicationMessageHandler { get; set; }
|
||||
public event EventHandler<MqttApplicationMessageReceivedEventArgs> ApplicationMessageReceived;
|
||||
|
||||
public IMqttServerOptions Options { get; private set; }
|
||||
|
||||
Reference in New Issue
Block a user