public async Task ProcessAsync(IMessageProtocol messageProtocol) { if (Equals(messageProtocol.Header, MessageType.Message)) { var message = messageProtocol.GetDataAs <Message>(); try { var meseClient = _clientsPool.FindClient(message.To.Id); if (meseClient != null) { await MessageCommunicator.WriteAsync(meseClient.TcpClient, messageProtocol); } else { Logger.Error($"Client {message.To.Name} not found. "); } } catch (Exception ex) { Logger.Error($"Exception: {ex}."); } return; } await _innerProcessor.ProcessAsync(messageProtocol); }
public override async Task ProcessAsync(IMessageProtocol messageProtocol) { if (messageProtocol != null && Equals(messageProtocol.Header, MessageType.ClientConnectedSelf)) { var connectionEstablished = messageProtocol.GetDataAs <ConnectionEstablished>(); Notifier.OnConnectedToServer(this, new NotifierEventArgs <ConnectionEstablished>(connectionEstablished)); return; } await _innerProcessor.ProcessAsync(messageProtocol); }
public override async Task ProcessAsync(IMessageProtocol messageProtocol) { if (messageProtocol.Header.Equals(MessageType.ClientDisconnected)) { var user = messageProtocol.GetDataAs <User>(); Notifier.OnUserDisconnected(this, new NotifierEventArgs <User>(user)); return; } await _innerProcessor.ProcessAsync(messageProtocol); }
public override async Task ProcessAsync(IMessageProtocol messageProtocol) { if (messageProtocol != null && Equals(messageProtocol.Header, MessageType.Message)) { var message = messageProtocol.GetDataAs <Message>(); Notifier.OnMessageReceived(this, new NotifierEventArgs <Message>(message)); return; } await _innerProcessor.ProcessAsync(messageProtocol); }
public async Task ProcessAsync(IMessageProtocol messageProtocol) { if (messageProtocol != null && Equals(messageProtocol.Header, MessageType.ClientDisconnected)) { var user = messageProtocol.GetDataAs <User>(); Logger.Info($"Client disconnected. {user}"); await BroadcastClientDisconnectedAsync(user); return; } await _innerProcessor.ProcessAsync(messageProtocol); }