private IConnection OnConnection(RakNet.Packet packet, RakPeerInterface server)
        {
            logger.Trace("Connected to endpoint {0}", packet.systemAddress);

            IConnection c   = CreateNewConnection(packet.guid, server);
            var         ctx = new PeerConnectedContext {
                Connection = c
            };
            var pconnected = _connectionHandler.PeerConnected;

            if (pconnected != null)
            {
                pconnected(ctx);
            }

            c = ctx.Connection;
            server.DeallocatePacket(packet);
            _handler.NewConnection(c);
            var action = ConnectionOpened;

            if (action != null)
            {
                action(c);
            }

            c.SendSystem((byte)MessageIDTypes.ID_CONNECTION_RESULT, s => s.Write(BitConverter.GetBytes(c.Id), 0, 8));
            return(c);
        }
        private IConnection OnConnection(RakNet.Packet packet, RakPeerInterface server)
        {
            logger.Trace("Connected to endpoint {0}", packet.systemAddress);

            IConnection c = CreateNewConnection(packet.guid, server);
            var ctx = new PeerConnectedContext { Connection = c };
            var pconnected = _connectionHandler.PeerConnected;
            if(pconnected !=null)
            {
                pconnected(ctx);
            }
            
            c = ctx.Connection;
            server.DeallocatePacket(packet);
            _handler.NewConnection(c);
            var action = ConnectionOpened;
            if (action != null)
            {
                action(c);
            }

            c.SendSystem((byte)MessageIDTypes.ID_CONNECTION_RESULT, s => s.Write(BitConverter.GetBytes(c.Id), 0, 8));
            return c;
        }