Example #1
0
 private void ViewerForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (_server != null)
     {
         _server.Dispose();
         _server = null;
     }
 }
Example #2
0
 // TODO: шифрование.
 // TODO: регистрация пользователей в бд.
 // TODO: ещё одна форма для входа.
 // TODO: переписать под эвенты.
 static void Main(string[] args)
 {
     Console.WriteLine("ver 0.4.1");
     // Создаём возможно отсутствующие объекты в бд.
     DBmanager.Initialize();
     // Ждём пользователей в бесконечном цикле.
     ServerEngine.Listen();
 }
Example #3
0
 public void StartServer()
 {
     if (Engine is ServerEngine)
     {
         return;
     }
     EndNetworkConnection();
     Engine = new ServerEngine(this);
 }
Example #4
0
        static void Main()
        {
            ServerEngine engine = new ServerEngine();

            engine.Start(true);

            App.Main();

            engine.Stop();
        }
Example #5
0
        public void SessionInterestOpenAndClose()
        {
            // Setup the server engine and its required dependencies
            ServerStateMachine     serverStateMachine = new TestServerStateMachine();
            SessionManager         sessionManager     = new SessionManager();
            ServerObjectRepository objectRepo         = new ServerObjectRepository(serverStateMachine);
            ServerEngine           serverEngine       = new ServerEngine(sessionManager, objectRepo, MockSendMessageToReflector);

            Guid sessionId1 = new Guid();

            ZoneId zoneId1 = new ZoneId(100);
            ZoneId zoneId2 = new ZoneId(200);
            ZoneId zoneId3 = new ZoneId(300);

            // Simple open and close interest
            // Tests interest changing in an empty zone
            serverEngine.ProcessOpenZoneInterest(sessionId1, zoneId1);
            Assert.IsTrue(sessionManager.SessionIdHasInterest(sessionId1, zoneId1));
            serverEngine.ProcessCloseZoneInterest(sessionId1, zoneId1);
            Assert.IsFalse(sessionManager.SessionIdHasInterest(sessionId1, zoneId1));

            // Now test interest in two zones at once
            serverEngine.ProcessOpenZoneInterest(sessionId1, zoneId1);
            serverEngine.ProcessOpenZoneInterest(sessionId1, zoneId2);
            Assert.IsTrue(sessionManager.SessionIdHasInterest(sessionId1, zoneId1));
            Assert.IsTrue(sessionManager.SessionIdHasInterest(sessionId1, zoneId2));

            // Now close them as a list
            List <ZoneId> zoneIds = new List <ZoneId>();

            zoneIds.Add(zoneId1);
            zoneIds.Add(zoneId2);
            serverEngine.ProcessCloseZoneInterest(sessionId1, zoneIds);
            Assert.IsFalse(sessionManager.SessionIdHasInterest(sessionId1, zoneId1));
            Assert.IsFalse(sessionManager.SessionIdHasInterest(sessionId1, zoneId2));

            // Open the same interest twice
            serverEngine.ProcessOpenZoneInterest(sessionId1, zoneId1);
            serverEngine.ProcessOpenZoneInterest(sessionId1, zoneId1);
            Assert.IsTrue(sessionManager.SessionIdHasInterest(sessionId1, zoneId1));
            // Close it
            serverEngine.ProcessCloseZoneInterest(sessionId1, zoneId1);
            Assert.IsFalse(sessionManager.SessionIdHasInterest(sessionId1, zoneId1));

            // Close interest in a zone you didn't have interest in already
            serverEngine.ProcessCloseZoneInterest(sessionId1, zoneId3);
            Assert.IsFalse(sessionManager.SessionIdHasInterest(sessionId1, zoneId3));
        }
Example #6
0
    public void RetrieveProducts(Callback callback, string product_model = null)
    {
        LogManager.Log("Retrieve Products");
        WWWForm form = new WWWForm();

        productList = new List <Product> ();
        string url = CommonConfig.API_URL + "route=game/product/products";

        if (product_model != null)
        {
            form.AddField("product_model", product_model);
        }

        this.callback = callback;
        StartCoroutine(ServerEngine.PostData(url, form, new ServerEngine.Callback(CreateProductList)));
    }
Example #7
0
 void Start()
 {
     if (isServer)
     {
         //ServerEngine se = gameObject.AddComponent<ServerEngine>();
         //se.syncedBehaviours = testObjects;
         s        = Instantiate(serverEngine);
         IsServer = true;
     }
     else
     {
         //ClientEngine ce = gameObject.AddComponent<ClientEngine>();
         //ce.syncedBehaviours = testObjects;
         c        = Instantiate(clientEngine);
         IsServer = false;
     }
 }
Example #8
0
        static void Main(string[] args)
        {
            string hostUrl = ConfigurationManager.AppSettings["host"];

            _framework = new ServerEngine(hostUrl, int.Parse(ConfigurationManager.AppSettings["timeout"]));
            _framework.Start();
            Console.WriteLine("Start '{0}'", hostUrl);

            while (true)
            {
                Console.WriteLine("Press <E> to exit..");
                if (Console.ReadKey().Key == ConsoleKey.E)
                {
                    _framework.Dispose();
                    _framework = null;
                    break;
                }
            }

            Console.WriteLine("exit.");
        }
Example #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("Server starting...");

            var server = new ServerEngine();

            server.Load();

            while (true)
            {
                Console.WriteLine("Start command...");

                var command = Console.ReadLine();
                var argsCmd = command.Split(' ');



                if (argsCmd[0] == "find")
                {
                    var entity = argsCmd[1];
                    var id     = argsCmd[2];
                    //server.find(entity, id, result => Console.WriteLine(result));
                }

                if (argsCmd[0] == "run")
                {
                    var entity = argsCmd[1];
                    var id     = argsCmd[2];

                    //ThreadPool.QueueUserWorkItem(ThreadProc);
                    //server.find(entity, id, result => Console.WriteLine(result));
                }

                if (argsCmd[0] == "help")
                {
                }
            }

            ShutdownServerMre.WaitOne();
        }
Example #10
0
        public void ObjectZoneChangingWithNobodyListening()
        {
            // Setup the server engine and its required dependencies
            ServerStateMachine     serverStateMachine = new TestServerStateMachine();
            SessionManager         sessionManager     = new SessionManager();
            ServerObjectRepository objectRepo         = new ServerObjectRepository(serverStateMachine);
            ServerEngine           serverEngine       = new ServerEngine(sessionManager, objectRepo, MockSendMessageToReflector);

            // Create a distributed object to play with
            DistributedObjectId   doId = new DistributedObjectId(100);
            DistributedTestObject obj  = new DistributedTestObject(doId);

            ZoneId zoneId1 = new ZoneId(100);
            ZoneId zoneId2 = new ZoneId(200);

            // Start by putting the object in the first zone
            serverEngine.ProcessZoneChange(obj, zoneId1);
            Assert.IsTrue(objectRepo.GetZone(obj) == zoneId1);

            // Test changing to the zone the object is already in
            serverEngine.ProcessZoneChange(obj, zoneId1);
            Assert.IsTrue(objectRepo.GetZone(obj) == zoneId1);

            // Now change to a new zone
            serverEngine.ProcessZoneChange(obj, zoneId2);
            Assert.IsTrue(objectRepo.GetZone(obj) == zoneId2);

            // Now remove the object from the zone
            Assert.IsTrue(serverEngine.RemoveObjectFromZone(obj) == zoneId2);
            Assert.IsTrue(objectRepo.GetZone(obj) == null);

            // Try a duplicate removal - should be safe to do
            Assert.IsTrue(serverEngine.RemoveObjectFromZone(obj) == null);
            Assert.IsTrue(objectRepo.GetZone(obj) == null);

            // Now put the object back in the first zone
            serverEngine.ProcessZoneChange(obj, zoneId1);
            Assert.IsTrue(objectRepo.GetZone(obj) == zoneId1);
        }
Example #11
0
        public void DisconnectSession()
        {
            // Setup the server engine and its required dependencies
            ServerStateMachine     serverStateMachine = new TestServerStateMachine();
            SessionManager         sessionManager     = new SessionManager();
            ServerObjectRepository objectRepo         = new ServerObjectRepository(serverStateMachine);
            ServerEngine           serverEngine       = new ServerEngine(sessionManager, objectRepo, MockSendMessageToReflector);

            // Create a distributed object to play with
            DistributedObjectId   doId = new DistributedObjectId(100);
            DistributedTestObject obj  = new DistributedTestObject(doId);

            ZoneId zoneId    = new ZoneId(200);
            Guid   sessionId = new Guid();

            Assert.IsTrue(sessionManager.AddSession(sessionId, new ServerAccount(new AccountId(0), 0, "0", "0", "schmear", "mein", "schmeer", null)));
            objectRepo.AddObjectToSessionId(sessionId, obj);

            serverEngine.ProcessOpenZoneInterest(sessionId, zoneId);
            serverEngine.ProcessZoneChange(obj, zoneId);

            serverEngine.ProcessDisconnectSession(sessionId);

            // See if the object repo got cleaned up
            // Object repo should no longer have the object
            Assert.IsFalse(objectRepo.ContainsObject(obj));
            Assert.IsTrue(objectRepo.GetObject(doId) == null);
            // Object should not be in the zone
            Assert.IsFalse(objectRepo.GetObjectsInZone(zoneId).Contains(obj));
            Assert.IsTrue(objectRepo.GetDistributedObjectIdsOwnedBySessionId(sessionId).Count == 0);

            // See if the session manager got cleaned up
            // Session manager should no longer have the session
            Assert.IsFalse(sessionManager.ContainsSession(sessionId));
            // Zone interest should be cleaned up
            Assert.IsFalse(sessionManager.SessionIdHasInterest(sessionId, zoneId));
            Assert.IsFalse(sessionManager.GetSessionIdsInterestedInZoneId(zoneId).Contains(sessionId));
            Assert.IsFalse(sessionManager.GetZoneIdsFromInterestedSessionId(sessionId).Contains(zoneId));
        }
Example #12
0
 public ServerPacketHandler(ServerEngine engine)
 {
     this.engine = engine;
     InitializePackageHandlers();
 }
Example #13
0
 public Game()
 {
     _connectionService = new ConnectionService();
     _serverEngine      = ServerEngine.Instance;
 }
Example #14
0
 public TestRoomManager(ServerObjectRepository serverObjectRepository, ZoneIdManager zoneIdManager, DistributedObjectIdManager distributedObjectIdManager, ServerEngine serverEngine, SessionManager sessionManager, ServerAssetRepository serverAssetRepository, Hangout.Shared.Action <Message, Guid> sendMessageToClientCallback)
     : base(null)
 {
 }
Example #15
0
 private static void Main(string[] args)
 {
     _engine = new ServerEngine <SocketSession, Server <SocketSession> >("127.0.0.1", 3456);
     Start();
 }
    static void Main(string[] args)
    {
        var server = new ServerEngine();

        server.Start(IPAddress.Any, 4000);
    }