コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }