void OnClientSessionCallback(CClientSocket ClientSocket, int ConnectionIndex, byte[] arguments)
        {
            SSessionPacket SessionPacket = CSerialization.Deserialize <SSessionPacket>(arguments);

            //Relay the session to the appropriate controller
            foreach (SConnection Connection in Connections)
            {
                if (Connection.ConnectionType != EConnectionType.Controller)
                {
                    continue;
                }

                if (Connection.Information == null)
                {
                    continue;
                }

                SControllerInformation ControllerInformation = (SControllerInformation)Connection.Information;

                if (ControllerInformation.IsAuthorized && ControllerInformation.Key == SessionPacket.ControllerKey)
                {
                    ClientSocket.SendPacket <SSessionPacket>((byte)EControllerPackets.Session, SessionPacket);
                    break;
                }
            }
        }
Пример #2
0
        void PacketSessionResponse(byte[] arguments)
        {
            SSessionPacket SessionPacket = CSerialization.Deserialize <SSessionPacket>(arguments);

            if (OnSessionPacketReceived != null)
            {
                OnSessionPacketReceived.Invoke(SessionPacket);
            }
        }
Пример #3
0
        void OnSessionCallback(byte[] arguments)
        {
            SSessionPacket SessionPacket = CSerialization.Deserialize <SSessionPacket>(arguments);

            if (SessionPacket.Packet == ESessionPackets.Introduction)
            {
                ClientSocket.SendPacket <SSessionPacket>((byte)EClientPackets.Session, SessionPacket);
            }
        }
Пример #4
0
        void SendIntroduction(IControllerSession session)
        {
            SSessionPacket SessionPacket = new SSessionPacket
            {
                SessionId     = session.Id,
                ClientHandle  = session.Client.SocketHandle,
                Packet        = ESessionPackets.Introduction,
                ControllerKey = Program.Key
            };

            Connection.SendPacket <SSessionPacket>(EControllerPackets.Session, SessionPacket);
        }
Пример #5
0
 public void SessionPacketReceived(SSessionPacket SessionPacket)
 {
     lock (Sessions)
     {
         foreach (IControllerSession Session in Sessions)
         {
             if (Session.Id == SessionPacket.SessionId)
             {
                 Session.OnPacketReceived(SessionPacket.Packet, SessionPacket.data);
                 break;
             }
         }
     }
 }
        void OnControllerSessionCallback(CClientSocket ClientSocket, int ConnectionIndex, byte[] arguments)
        {
            SSessionPacket SessionPacket = CSerialization.Deserialize <SSessionPacket>(arguments);

            //Relay the session packet to the appropriate client
            foreach (SConnection Connection in Connections)
            {
                if (Connection.ConnectionType != EConnectionType.Client)
                {
                    continue;
                }

                if (Connection.Information == null)
                {
                    continue;
                }

                if (Connection.ClientSocket.GetHandle() == SessionPacket.ClientHandle)
                {
                    Connection.ClientSocket.SendPacket <SSessionPacket>((byte)EClientPackets.Session, SessionPacket);
                    break;
                }
            }
        }
Пример #7
0
 private void Connection_OnSessionPacketReceived(SSessionPacket SessionPacket)
 {
     SessionManager.SessionPacketReceived(SessionPacket);
 }