Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }