Beispiel #1
0
        private async Task <ConnectReturnCode> AuthenticateAsync(ReadListeningHandler readListener)
        {
            var connectPacket = new ConnectPacket
            {
                ClientId     = ClientId,
                CleanSession = true
            };
            //if (!string.IsNullOrEmpty(username))
            //{
            //    packet.UsernameFlag = true;
            //    packet.UserName = username;
            //}
            //if (!string.IsNullOrEmpty(password))
            //{
            //    packet.PasswordFlag = true;
            //    packet.Password = password;
            //}
            //connectPacket.KeepAlive = KeepAlive;

            await _clientChannel.WriteAndFlushAsync(connectPacket);

            if (await readListener.ReceiveAsync() is ConnAckPacket connAckPacket)
            {
                return(connAckPacket.ConnectReturnCode);
            }
            return(ConnectReturnCode.UnacceptedProtocolVersion);
        }
Beispiel #2
0
 private async Task ReceivePacketsAsync(ReadListeningHandler clientReadListener)
 {
     while (true)
     {
         if (await clientReadListener.ReceiveAsync() is Packet packet)
         {
             await ProcessReceivedPacketAsync(packet);
         }
     }
 }