Ejemplo n.º 1
0
        /// <summary>
        /// Given a raw network message, decodes the message and delegates it to an appropriate handling method.
        /// </summary>
        public void Handle(ref RawNetMessage parameters)
        {
            var messageType = MessageBase <TMessageType> .GetMessageType(parameters.Message);

            if (_mapping.TryGetValue(messageType, out RawNetMessageHandler value))
            {
                value(ref parameters);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Called when new message is received from IClientConnection implementation
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="message"></param>
        void OnMessageReceived(object sender, MessageBase message)
        {
            if (message.RestrictedAccess != isAuthenticated)
            {
                return;
            }

            LastActivity = DateTime.UtcNow;

            var messageType = message.GetMessageType();

            if (messageType == MessageType.Authenticate)
            {
                Authenticate((AuthenticateMessage)message);
            }
            else if (messageType == MessageType.Walk)
            {
                var walkMessage = (WalkMessage)message;
                Move(walkMessage.Direction);
            }
        }