private void ViewerForm_FormClosing(object sender, FormClosingEventArgs e) { if (_server != null) { _server.Dispose(); _server = null; } }
// TODO: шифрование. // TODO: регистрация пользователей в бд. // TODO: ещё одна форма для входа. // TODO: переписать под эвенты. static void Main(string[] args) { Console.WriteLine("ver 0.4.1"); // Создаём возможно отсутствующие объекты в бд. DBmanager.Initialize(); // Ждём пользователей в бесконечном цикле. ServerEngine.Listen(); }
public void StartServer() { if (Engine is ServerEngine) { return; } EndNetworkConnection(); Engine = new ServerEngine(this); }
static void Main() { ServerEngine engine = new ServerEngine(); engine.Start(true); App.Main(); engine.Stop(); }
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)); }
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))); }
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; } }
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."); }
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(); }
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); }
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)); }
public ServerPacketHandler(ServerEngine engine) { this.engine = engine; InitializePackageHandlers(); }
public Game() { _connectionService = new ConnectionService(); _serverEngine = ServerEngine.Instance; }
public TestRoomManager(ServerObjectRepository serverObjectRepository, ZoneIdManager zoneIdManager, DistributedObjectIdManager distributedObjectIdManager, ServerEngine serverEngine, SessionManager sessionManager, ServerAssetRepository serverAssetRepository, Hangout.Shared.Action <Message, Guid> sendMessageToClientCallback) : base(null) { }
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); }