private void StartReading() { Task.Run(async() => { var connectionId = ConnectionId; try { var reader = new StreamReader(ActiveConnection.GetStream()); while (IsOnline && connectionId == ConnectionId) { var message = await reader.ReadLineAsync(); if (message == null) { break; } Logger.Trace($">> {message}"); if (!ClientReadProxy.ProcessRequest(message).Invoked) { await ServerReceivedInvalidMessageAsync(InvalidMessage.For(message)).CastToTask(); } } } catch (Exception exception) { Logger.Warn($"[READ] Disconnected. Reason: {exception.Message}"); await OnTcpClientDisconnected(connectionId); } }); }
public void WaitForRegistration() { Task.Run(async() => { var reader = new StreamReader(TcpClient.GetStream()); var clientChannelProxy = new ChannelInvoker(this); var message = await reader.ReadLineAsync(); if (!clientChannelProxy.ProcessRequest(message).Invoked) { OnInvalidRequest(InvalidMessage.For(message)); } }); }
public void WaitForRegistration() { Task.Run(async() => { var reader = new StreamReader(TcpClient.GetStream()); var clientChannelProxy = new ChannelInvoker(this); string message; do { message = await reader.ReadLineAsync(); Logger.Info(message); } while (!message.ToUpper().StartsWith(nameof(RegisterAsync).ToUpper())); if (!clientChannelProxy.ProcessRequest(message).Invoked) { await OnInvalidRequest(InvalidMessage.For(message)).CastToTask(); } }); }