ソースを参照

dont allow publish before the client is started and adjusted testclient accordingly

release/3.x.x
JanEggers 5年前
コミット
328ffc734f
2個のファイルの変更4行の追加5行の削除
  1. +1
    -2
      Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs
  2. +3
    -3
      Tests/MQTTnet.TestApp.NetCore/ManagedClientTest.cs

+ 1
- 2
Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs ファイルの表示

@@ -49,8 +49,6 @@ namespace MQTTnet.Extensions.ManagedClient

if (logger == null) throw new ArgumentNullException(nameof(logger));
_logger = logger.CreateChildLogger(nameof(ManagedMqttClient));

Options = new ManagedMqttClientOptions();
}

public bool IsConnected => _mqttClient.IsConnected;
@@ -150,6 +148,7 @@ namespace MQTTnet.Extensions.ManagedClient
ThrowIfDisposed();

if (applicationMessage == null) throw new ArgumentNullException(nameof(applicationMessage));
if (Options == null) throw new InvalidOperationException("call StartAsync before publishing messages");

MqttTopicValidator.ThrowIfInvalid(applicationMessage.ApplicationMessage.Topic);



+ 3
- 3
Tests/MQTTnet.TestApp.NetCore/ManagedClientTest.cs ファイルの表示

@@ -40,11 +40,11 @@ namespace MQTTnet.TestApp.NetCore
Console.WriteLine(">> RECEIVED: " + e.ApplicationMessage.Topic);
});

await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("1"));
await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("2").WithAtLeastOnceQoS());

await managedClient.StartAsync(options);

await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("1"));
await managedClient.PublishAsync(builder => builder.WithTopic("Step").WithPayload("2").WithAtLeastOnceQoS());
await managedClient.SubscribeAsync(new TopicFilter { Topic = "xyz", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce });
await managedClient.SubscribeAsync(new TopicFilter { Topic = "abc", QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce });



読み込み中…
キャンセル
保存