public async Task <MqttResponse> PublishMessageAsync(MqttMessage message) { var mqttMessage = new MqttApplicationMessageBuilder() .WithQualityOfServiceLevel((MqttQualityOfServiceLevel)message.QoS) .WithTopic(message.Topic) .WithPayload(message.Payload) .Build(); var result = await _client.PublishAsync(mqttMessage, CancellationToken.None); var response = new MqttResponse() { ResponseCode = (result.ReasonCode == MqttClientPublishReasonCode.Success) ? MqttResponseCode.Success : MqttResponseCode.Error }; return(response); }
public async Task <MqttResponse> ConnectAsync(MqttOptions options) { _mqttOptions = options; var mqqtOptions = new MqttClientOptionsBuilder() .WithClientId(_mqttOptions.ClientId) .WithTcpServer(_mqttOptions.TcpServer, _mqttOptions.Port) .WithCredentials(_mqttOptions.Username, _mqttOptions.Password) .WithTls(t => t.UseTls = _mqttOptions.UseTls) .WithCleanSession(_mqttOptions.CleanSession) .WithKeepAlivePeriod(TimeSpan.FromSeconds(_mqttOptions.KeepAlive)) .Build(); var result = await _client.ConnectAsync(mqqtOptions); var response = new MqttResponse() { ResponseCode = (result.ResultCode == MqttClientConnectResultCode.Success) ? MqttResponseCode.Success : MqttResponseCode.Error }; return(response); }