Преглед на файлове

Add ClientId for application messages published by the server.

release/3.x.x
Christian Kratky преди 5 години
родител
ревизия
6ed3b0cedd
променени са 4 файла, в които са добавени 21 реда и са изтрити 2 реда
  1. +3
    -1
      Source/MQTTnet/Server/IMqttServerOptions.cs
  2. +7
    -1
      Source/MQTTnet/Server/MqttClientSessionsManager.cs
  3. +2
    -0
      Source/MQTTnet/Server/MqttServerOptions.cs
  4. +9
    -0
      Source/MQTTnet/Server/MqttServerOptionsBuilder.cs

+ 3
- 1
Source/MQTTnet/Server/IMqttServerOptions.cs Целия файл

@@ -4,6 +4,8 @@ namespace MQTTnet.Server
{
public interface IMqttServerOptions
{
string ClientId { get; set; }

bool EnablePersistentSessions { get; }

int MaxPendingMessagesPerClient { get; }
@@ -19,6 +21,6 @@ namespace MQTTnet.Server
MqttServerTcpEndpointOptions DefaultEndpointOptions { get; }
MqttServerTlsTcpEndpointOptions TlsEndpointOptions { get; }

IMqttServerStorage Storage { get; }
IMqttServerStorage Storage { get; }
}
}

+ 7
- 1
Source/MQTTnet/Server/MqttClientSessionsManager.cs Целия файл

@@ -364,7 +364,13 @@ namespace MQTTnet.Server
return null;
}

var interceptorContext = new MqttApplicationMessageInterceptorContext(sender?.ClientId, applicationMessage);
var senderClientId = sender?.ClientId;
if (sender == null)
{
senderClientId = _options.ClientId;
}

var interceptorContext = new MqttApplicationMessageInterceptorContext(senderClientId, applicationMessage);
await interceptor.InterceptApplicationMessagePublishAsync(interceptorContext).ConfigureAwait(false);
return interceptorContext;
}


+ 2
- 0
Source/MQTTnet/Server/MqttServerOptions.cs Целия файл

@@ -8,6 +8,8 @@ namespace MQTTnet.Server

public MqttServerTlsTcpEndpointOptions TlsEndpointOptions { get; } = new MqttServerTlsTcpEndpointOptions();

public string ClientId { get; set; }

public bool EnablePersistentSessions { get; set; }

public int MaxPendingMessagesPerClient { get; set; } = 250;


+ 9
- 0
Source/MQTTnet/Server/MqttServerOptionsBuilder.cs Целия файл

@@ -147,6 +147,15 @@ namespace MQTTnet.Server
return this;
}

/// <summary>
/// Gets or sets the client ID which is used when publishing messages from the server directly.
/// </summary>
public MqttServerOptionsBuilder WithClientId(string value)
{
_options.ClientId = value;
return this;
}

public IMqttServerOptions Build()
{
return _options;


Зареждане…
Отказ
Запис