예제 #1
0
        private void HandleReceived_Connection(MhfConnection connection, MhfPacket packet)
        {
            if (!_connectionHandlers.ContainsKey(packet.Id))
            {
                //   _logger.LogUnknownIncomingPacket(connection, packet);
                return;
            }

            IConnectionHandler connectionHandler = _connectionHandlers[packet.Id];

            if (connectionHandler.ExpectedSize != NoExpectedSize && packet.Data.Size < connectionHandler.ExpectedSize)
            {
                _logger.Error(connection,
                              $"Ignoring Packed (Id:{packet.Id}) is smaller ({packet.Data.Size}) than expected ({connectionHandler.ExpectedSize})");
                return;
            }

            //  _logger.LogIncomingPacket(connection, packet);
            packet.Data.SetPositionStart();
            try
            {
                connectionHandler.Handle(connection, packet);
            }
            catch (Exception ex)
            {
                _logger.Exception(connection, ex);
            }
        }
예제 #2
0
        public List <MhfPacket> Receive(byte[] data)
        {
            List <MhfPacket> packets;

            try
            {
                packets = PacketFactory.Read(data);
            }
            catch (Exception ex)
            {
                _logger.Exception(this, ex);
                packets = new List <MhfPacket>();
            }

            return(packets);
        }
예제 #3
0
 protected override void Exception(Exception ex)
 {
     Logger.Exception(ex);
 }