/// <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); } }
/// <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); } }