private void ReadCommand(IPEndPoint endPoint, byte[] buffer) { MemoryStream stream = new MemoryStream(buffer); BinaryReader reader = new BinaryReader(stream, Encoding.ASCII, true); int commandSize = reader.ReadInt32(); MessageType messageType = (MessageType)reader.ReadByte(); // TODO: Handle log packet sequence number // TODO: Enable logging when necessary //LogMessage(endPoint, buffer, commandSize, messageType); Message message = null; switch (messageType) { case MessageType.Message: break; case MessageType.MessageHeartbeat: message = new MessageHearbeat(); break; case MessageType.MessageLog: break; case MessageType.MessageCurrentState: break; case MessageType.MessageProfileFrame: break; case MessageType.MessageSwdFile: break; case MessageType.MessageSourceFile: break; case MessageType.MessageSwdRequest: break; case MessageType.MessageSourceRequest: break; case MessageType.MessageAppControl: break; case MessageType.MessagePort: message = new MessagePort(); break; case MessageType.MessageImageRequest: break; case MessageType.MessageImageData: break; case MessageType.MessageFontRequest: break; case MessageType.MessageFontData: break; case MessageType.MessageCompressed: break; case MessageType.MessageLogin: message = new MessageLogin(); break; default: Debug.WriteLine("Unknown message: " + messageType); break; } // HACK: This is to stop clients from spamming the console if (message is MessagePort == false) { Debug.WriteLine(endPoint + ": " + messageType); } if (message == null) { return; } message.Read(stream); var visitor = new UpdateConnectionMessageVisitor(_connection); message.Accept(visitor); ReplyWithDummyData(endPoint); }
public override void Visit(MessageHearbeat message) { _connection.ClientComputerName = message.ClientComputerName; _connection.ClientId = message.ClientId; _connection.ClientName = message.ClientName; }
public virtual void Visit(MessageHearbeat message) { }