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;
 }
Esempio n. 3
0
 public virtual void Visit(MessageHearbeat message)
 {
 }
Esempio n. 4
0
 public virtual void Visit(MessageHearbeat message)
 {
 }
 public override void Visit(MessageHearbeat message)
 {
     _connection.ClientComputerName = message.ClientComputerName;
     _connection.ClientId           = message.ClientId;
     _connection.ClientName         = message.ClientName;
 }