mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-30 10:42:48 +08:00
Fix retained message handling
This commit is contained in:
@@ -220,7 +220,8 @@ namespace MQTTnet.Server
|
|||||||
|
|
||||||
private MqttApplicationMessage InterceptApplicationMessage(MqttClientSession senderClientSession, MqttApplicationMessage applicationMessage)
|
private MqttApplicationMessage InterceptApplicationMessage(MqttClientSession senderClientSession, MqttApplicationMessage applicationMessage)
|
||||||
{
|
{
|
||||||
if (_options.ApplicationMessageInterceptor == null)
|
var interceptor = _options.ApplicationMessageInterceptor;
|
||||||
|
if (interceptor == null)
|
||||||
{
|
{
|
||||||
return applicationMessage;
|
return applicationMessage;
|
||||||
}
|
}
|
||||||
@@ -229,7 +230,7 @@ namespace MQTTnet.Server
|
|||||||
senderClientSession.ClientId,
|
senderClientSession.ClientId,
|
||||||
applicationMessage);
|
applicationMessage);
|
||||||
|
|
||||||
_options.ApplicationMessageInterceptor(interceptorContext);
|
interceptor(interceptorContext);
|
||||||
return interceptorContext.ApplicationMessage;
|
return interceptorContext.ApplicationMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MQTTnet.Diagnostics;
|
using MQTTnet.Diagnostics;
|
||||||
using MQTTnet.Packets;
|
|
||||||
|
|
||||||
namespace MQTTnet.Server
|
namespace MQTTnet.Server
|
||||||
{
|
{
|
||||||
@@ -68,7 +67,7 @@ namespace MQTTnet.Server
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<MqttApplicationMessage>> GetSubscribedMessagesAsync(MqttSubscribePacket subscribePacket)
|
public async Task<List<MqttApplicationMessage>> GetSubscribedMessagesAsync(ICollection<TopicFilter> topicFilters)
|
||||||
{
|
{
|
||||||
var retainedMessages = new List<MqttApplicationMessage>();
|
var retainedMessages = new List<MqttApplicationMessage>();
|
||||||
|
|
||||||
@@ -77,13 +76,8 @@ namespace MQTTnet.Server
|
|||||||
{
|
{
|
||||||
foreach (var retainedMessage in _retainedMessages.Values)
|
foreach (var retainedMessage in _retainedMessages.Values)
|
||||||
{
|
{
|
||||||
foreach (var topicFilter in subscribePacket.TopicFilters)
|
foreach (var topicFilter in topicFilters)
|
||||||
{
|
{
|
||||||
if (retainedMessage.QualityOfServiceLevel < topicFilter.QualityOfServiceLevel)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!MqttTopicFilterComparer.IsMatch(retainedMessage.Topic, topicFilter.Topic))
|
if (!MqttTopicFilterComparer.IsMatch(retainedMessage.Topic, topicFilter.Topic))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user