public async Task InitializeAsync() { var factory = new MqttFactory(); MqttServer = factory.CreateMqttServer(); MqttClient1 = factory.CreateMqttClient(); MqttClient2 = factory.CreateMqttClient(); MqttClient1.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(args => Client1MessageReceived?.Invoke(this, args)); MqttClient2.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(args => Client2MessageReceived?.Invoke(this, args)); var brokerIpAddress = IPAddress.Loopback; var brokerPort = 1885; var mqttServerOptions = new MqttServerOptionsBuilder() .WithClientId("broker") .WithDefaultEndpointBoundIPAddress(brokerIpAddress) .WithDefaultEndpointPort(brokerPort) .Build(); var mqttClient1Options = new MqttClientOptionsBuilder() .WithClientId("client1") .WithTcpServer(brokerIpAddress.ToString(), brokerPort) .Build(); var mqttClient2Options = new MqttClientOptionsBuilder() .WithClientId("client2") .WithTcpServer(brokerIpAddress.ToString(), brokerPort) .Build(); await MqttServer.StartAsync(mqttServerOptions).ConfigureAwait(false); var connectClient1Result = await MqttClient1.ConnectAsync(mqttClient1Options).ConfigureAwait(false); var connectClient2Result = await MqttClient2.ConnectAsync(mqttClient2Options).ConfigureAwait(false); }
public async Task DisposeAsync() { if (MqttClient1 != null) { await MqttClient1.DisconnectAsync().ConfigureAwait(false); } if (MqttClient2 != null) { await MqttClient2.DisconnectAsync().ConfigureAwait(false); } if (MqttServer != null) { await MqttServer.StopAsync().ConfigureAwait(false); } }