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); }
private async Task ReceivePacketsAsync(ReadListeningHandler clientReadListener) { while (true) { if (await clientReadListener.ReceiveAsync() is Packet packet) { await ProcessReceivedPacketAsync(packet); } } }